zoukankan      html  css  js  c++  java
  • 创建共享程序集

      共享程序集的一个副本可供一台机器上的多个应用程序使用,文件不会出现在应用程序的运行目录下,而是被安装在GAC(Globle Assemble Cache)中。

      在.net4.0中,GAC被分在2个地方。.NET1.0到.NET3.5的基础类库被放到“C:Windowsassembly”,而在.NET4.0 编译下的程序集,是放到“C:WindowsMicrosoft.NETassemblyGAC_MSIL”中。

      比如我们经常使用的MessageBox.Show()方法,属于System.Windows.Forms.dll程序集,这个程序集是在"C:Windowsassembly"中。

      部署到GAC之前,一定要给这个程序集赋一个强命名(包括程序集的友好名称、版本号、公钥值等),它就像是.NET中的GUID,是一个唯一标识符。它的作用是用于标识给定.NET二进制文件的发行者。

      部署共享程序集的步骤如下:

    1、生成强命名文件。可通过命令或图形化两种方式实现。

      (1)命令方式

        a、使用【sn -k 文件名.snk】命令生成以 *.snk(strong name key)后缀的文件。

          例如:sn -k mydll.snk

        b、将强文件信息写进AssemblyInfo.cs文件中。

          添加“[assembly: AssemblyKeyFile(强文件文件名)]”。例如:[assembly: AssemblyKeyFile(@"F:mydll.snk")]

      (2)图形化方式

        a、在项目属性中,选择“签名”,勾选“为程序集签名”,选择“新建”。

        b、创建强命名文件。

    2、安装强命名的程序集。

      使用【gacutil.exe】命令将程序集安装到GAC中。

      【gacutil.exe -i 程序集名称】:安装程序集到GAC中。例如:gacutil.exe -i mylib.dll

      【gacutil.exe -l 程序集名称】:查看程序集是否在GAC中。例如:gacutil.exe -l mylib(不能带dll后缀)

      【gacutil.exe -u 程序集名称】:卸载GAC中的程序集。例如:gacutil.exe -u mylib(不能带dll后缀)

      

      将代码库部署为私有还是共享,仍然是一个需要权衡的问题。它取决于项目本身的细节。一般来说,如果构建的库可被大量应用程序使用,共享程序集将十分有帮助,因为你可以轻松地部署一个新的版本。

     

    参考:http://www.cnblogs.com/damonlan/p/3221347.html

  • 相关阅读:
    【BZOJ3518】点组计数 欧拉函数
    【BZOJ3677】[Apio2014]连珠线 换根DP
    【BZOJ3678】wangxz与OJ Splay
    【BZOJ3935】Rbtree 树形DP
    【BZOJ3958】[WF2011]Mummy Madness 二分+扫描线+线段树
    (转)Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
    string.Format出现异常"输入的字符串格式有误"的解决方法
    c# winForm使用Aspose.Cells读取CSV文件中文乱码问题
    PowerDesigner15.1给自定义架构表字段添加MS_Description出错
    MongoDB 多条件组合查询
  • 原文地址:https://www.cnblogs.com/hibernation/p/3333407.html
Copyright © 2011-2022 走看看