20分钟读懂程序集(3)
<div><p>(2)部署GAC--强命名</p><p>部署到GAC之前,一定要给这个程序集赋一个强命名,它就像是.NET中的GUID,是一个唯一标识符。它的作用是用于标识给定.NET二进制文件的发行者。</p><p>强命名的组成包括:</p><ul> <li>程序集的友好名称</li> <li>程序集的版本号</li> <li>公钥值</li> <li>等等。。 <div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div> </li></ul><p>那怎么生成强命名呢?有2种方法,一种是命令形式,另外一个VS 图形化,最后的时候附带上。</p><p>①生成强命名文件</p><p>sn.exe 工具生成一个文件 以 *.snk(strong name key)后缀的文件。</p><p>语法是:</p><blockquote><p>sn -k 文件名.snk</p></blockquote><p></p><p>②把强命名文件放进程序中</p><p>我们只需要把刚我们myTestKey.snk 告诉编译器就好了。那怎么告诉呢?就是把信息写进AssemblyInfo.cs 文件。</p><p></p><p>③安装强命名的程序集</p><p>我们需要使用gacutil.exe 工具。</p><blockquote><p>安装:gacutil.exe -i 程序集名称</p><p>查看:gacutil.exe -l 程序集名称</p><p>卸载:gacutil.exe -u 程序集名称</p></blockquote><p></p><p>现 在我们打开“C:Windowsassembly”的时候,我们并没有找到刚MyLibrary.dll。原来在.NET 4中,GAC 被分在2个地方。.NET 1.0 到.NET 3.5的基础类库 就放到“C:Windowsassembly”这里。而且.NET 4 编译下的程序集,是放到“C:WindowsMicrosoft.NETassemblyGAC_MSIL”中。。</p><p></p><p>3.3 使用共享GAC</p><p>那我们就导入就好了!!。如果我们导入了一个共享的GAC,这个时候 我们没法再本地程序集下面找到这个程序集,只能在刚我们所说的位置。</p><p>3.4图形化配置GAC</p><p>①打开properties</p><p></p><p>我们选择 <New ...></p><p>②创建强命名文件</p><p></p><p>③显示</p><p></p></div>