• C#高级编程第11版


    导航

    第十九章 Libraries, Assemblies, Packages and NuGet

    19.1 库的地狱 423

    类库允许你在不同应用中进行代码复用。在Windows系统中,类库拥有悠久的历史,它的体系架构指南(architecture guidelines)为更新的技术提供了不少参考(take different directions)。在.NET之前,动态链接类库(dynamic link libraries,DLLS)可以在不同应用程序之间共享。这些DLLs可以安装在一个共享目录中。在同一个系统中,这些DLLs不允许存在不同版本,他们只能向前兼容(upward compatible)。当然,情况并非总是如此。如果你在安装新的应用程序的时候,没有仔细阅读旧程序的指南,不小心替换了它的某个共享类库。恭喜你,将会面临DLL地狱。

    .NET试图用程序集(assemblies)来解决这个问题。程序集和类库都可以被共享。与普通DLL不同的是,程序集包含了扩展的元数据信息,是带有版本号的类库,这样就可以在全局程序集缓存(global assembly cache)里,同时安装多个不同版本的类库。Microsoft试图通过这种方式来修复版本问题,但是这样子反而增加了另外一层复杂度。

    让我们假设你现在有一个应用程序X,并且它需要调用两个类库,一个A和一个B。如下图所示,X引用了1.1版本的类库A和1.0版本的类库B,这个时候,B还引用了1.0版本的类库A。因为一个进程里只能加载一个版本的类库,那么哪个版本的A会被加载?假如B先被调用,那么1.0版本的A类库就先被装载到进程里了。这个时候X程序自己又要调用A的话,问题就来了。

    类库调用

    19.2 程序集 425

    19.3 创建库 426

    19.3.1 .NET 标准 427

    19.3.2 创建.NET 标准库 428

    19.3.3 解决方案文件 428

    19.3.4 引用项目 429

    19.3.5 引用NuGet 包 429

    19.3.6 NuGet 的来源 430

    19.3.7 使用.NET Framework 库 431

    19.4 使用共享项目 433

    19.5 创建NuGet 包 435

    19.5.1 NuGet 包和命令行 435

    19.5.2 支持多个平台 435

    19.5.3 NuGet 包与Visual Studio 436

    19.6 小结 438

  • 相关阅读:
    40. Combination Sum II
    39. Combination Sum
    找一找
    37. Sudoku Solver
    Activiti 多个并发子流程的应用
    BPMN2新规范与Activiti5
    BPMN这点事-BPMN扩展元素
    JAVA规则引擎 -- Drools
    工作流Activiti5流程变量 任务变量 setVariables 跟 setVariablesLocal区别
    activiti 学习( 三 ) 之 流程启动者
  • 原文地址:https://www.cnblogs.com/zenronphy/p/ProfessionalCSharp7Chapter19.html
Copyright © 2020-2023  润新知