C#参考 :强名称程序集de构建和引用

强名称程序集de构建和引用

                                                               

     背景为获得程序集提供的许多好处,例如,在系统中多个应用程序之间共享,并行版本控制及其对安全型和部署更好的支持等,必须使用强名称程序集。.NET Framework使用强名称来提供唯一标识程序集的方法,允许应用程序与强名称程序集的多个版本一起运行,该强名称程序集的版本是与应用程序一起生成的,而且强名称具有确保程序集的可信性和不会被篡改的特性。

    组成强名称程序集由程序集标识组成,指:

        - 程序集的简单文本名称

        - 程序集版本号

        - 区域性信息,如果提供电话的话(可选)

        - 为客户端产生的公钥

        - 数字签名

    具体步骤

    创建强名称密钥对文件并且在CalculatorEngine库中引用此文件。然后创建WindowsCalculator应用程序是它引用强名称程序集。另外,还将使用ILDASM检查CalculatorEngine.dll和WindowsCalculator.exe的元数据。

(1)   创建强名称程序集

1)  打开命令提示符窗口。通过单击“开始”,然后指向“所有应用程序”,指向“Microsoft Visual Studio.NET 2003”,指向“Visual Studio.NET 工具”,然后单击“Visual Studio.NET 2003命令提示”。

2)  在命令提示符下,打开目录…\CalculatorEngine。

3)  输入命令“sn  –k  CalcKey.snk”,这将创建我们用来生成强名称程序集的一个强名称密钥文件。

4)  在Visual Studio.NET中的CalculatorEngine.sln解决方案文件。

5)  打开AssemblyInfo.cs文件。

6)  查找到“[assembly: AssemblyVersion("1.0.*")]”代码行,修改为:3.0.1.1

    [assembly: AssemblyVersion("3.0.1.1")];

7)  在文件的底端添加新属性(attribute)来应用强名称密钥对文件。

    [assembly: AssemblyKeyFile("CalcKey.snk ")];

8)  打开Calculator.cs源文件,重新生成程序集,然后关闭Visual Studio.NET。

9)  在Visual Studio.NET命令提示符提示窗口,打开目录…\ CalculatorEngine\bin\Debug。

10)      在命令提示符下,对CalculatorEngine.dll运行ILDASM。

     ildasm CalculatorEngine.dll

11)      打开“MANIFEST”子节点。

12)      注意到在.assernbly CalculatorEngine项下,有一个.publickey项。这表示CalculatorEngine是一个强名称程序集。

13)      关闭“MANIFEST”窗口和ILDASM

 

(2)   创建引用强名称程序集的应用程序

1)  在Visual Studio.NET中,打开或是创建新的解决方案WindowsCalculator.sln。

2)  添加对“CalculatorEngine.dll”引用

3)  重新生成解决方案。

4)  在命令提示窗口,对“WindowsCalculator.exe”运行ILDASM,输入命令:

   ildasm WindowsCalculator.exe

5)  打开“MANIFEST”子节点。注意在.assernbly extern CalculatorEngine项里不仅有版本号为3.0.1.1的项而且有publickeytoken项。这表示此应用程序有一个对外部强名称程序集的引用。

原文地址:https://www.cnblogs.com/Dlonghow/p/1263935.html