• 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项。这表示此应用程序有一个对外部强名称程序集的引用。

  • 相关阅读:
    Qt 主窗口与子窗口之间传值
    Qt 如何使窗体初始最大化
    C++ strcmp与strncmp的比较
    Qt 状态栏(statusbar)的使用
    C++中的补零
    Qt QString转char[]数组
    PAT基础6-9
    PAT基础6-8
    PAT基础6-6
    PAT基础6-7
  • 原文地址:https://www.cnblogs.com/Dlonghow/p/1263935.html
Copyright © 2020-2023  润新知