如何在Windows 2008中部署dll到GAC

如何在Windows 2008中部署dll到GAC,第1张

有以下两种方式解决在Windows Server2008下部署DLL到GAC问题 1.使用 gacutil.exe, *** 作步骤如下 1.1 首先需要下载Windows SDK 6.1 (Free from Microsoft – Download). 注意:在安装Windows SDK时,你只需要选择 .Net Development Tools一项 1.2 以Administrator方式打开Command Prompt命令窗口 1.3 输入如下命令 64 bit以下是代码片段: C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\x64\gacutil.exe /i 你的DLL文件名eg:C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\x64\gacutil.exe /i D:\MytestEvent\ItemDoLogEventHandler.dll 32 bit以下是代码片段: C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\gacutil.exe /i 你的DLL文件名eg:C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\gacutil.exe /i D:\MytestEvent\ItemDoLogEventHandler.dll 2. Disable User Account Control(关闭UAC) 因为会影响到系统的安全配置,降低系统的安全级别,所以一般不推荐使用此方式。

除了系统默认放置在GAC中的Assembly如System.Windows.Forms以外,我们也可以添加自己的Assembly:

1)创建一个强名称的Assembly,例如Toolbar.dll

2)运行gacutil -i Toolbar.dll,把这个Assembly添加到GAC

3)在程序中动态装载

System.Reflection.Assembly ass=Assembly.Load("ToolbarComponent, Version=1.0.934.20434, Culture=neutral, PublicKeyToken=65f45658c8d4927f")

MessageBox.Show("Is the assembly loaded from GAC"+ass.GlobalAssemblyCache)

在上面的程序中,ToolbarComponent就是从GAC装载而不是从程序的运行目录下的dll文件中装载,程序目录下不需要放置ToolbarComponent.dll程序也能正常运行。另外,Assembly.Load()中的参数可以通过"gacutil -l"查到。

另外,上面提到了GAC中的Assembly必须是strong-name的。创建strong-name的Assembly的步骤大致如下:

a) 在命令行运行“sn -k keyPair.snk”创建一个密钥文件。这里的sn.exe也是.NET附带的一个工具。

b) 在VS.NET里面修改“AssemblyInfo.cs”文件:

[assembly: AssemblyDelaySign(false)]

[assembly: AssemblyKeyFile("..\..\keyPair.snk")]

c) 编译项目,就能得到一个strong-name的Assembly。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/8000611.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存