当我将 dll 拖放到 vista 上的程序集文件夹时,我收到错误“访问被拒绝:mydll.dll”。如何绕过错误消息并将我的 dll 添加到 gac?
6 回答
我的猜测是您必须以管理员身份执行此操作...尝试禁用 UAC 或使用 gacutil.exe 添加您的程序集。
使用 vista 时,您可能无法在 windows 文件夹中找到 gacutil.exe。由于 vista 的“标志程序等等”的事情,它不包括在内。尝试使用 Windows 安装程序将您的程序集添加到 gac 中。这是推荐的方式。
永远不要忘记这个传统的食人魔谚语:“Bi siktir git cay koy”。
你可以用 gacutil.exe 做到这一点。它位于:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
但是,如果您安装了 .NET SDK(而不仅仅是 .Net Redistributible),它就在那里。但是你可以从你的开发者机器上复制它。
如果要驻留在 GAC 中,还需要对程序集 (dll) 进行强命名。
http://msdn.microsoft.com/en-us/library/wd40t7ad(VS.80).aspx
使用命令行,使用以下步骤:
打开 Visual Studio 命令提示符
首先打开 Visual Studio 命令提示符(对于 Visual Studio 2008,路径是 Programs --> Visual Studio 2008 --> Visual Studio Tools --> Visual Studio 2008 Command Prompt )以下步骤中提到的所有文件都将在 Visual Studio 中创建Studio 2008 命令提示符路径。就我而言,它是 C:\Program Files\Microsoft Visual Studio 9.0\VC
- 生成一个 KeyFile sn -k keyPair.snk
- 获取程序集 ildasm SomeAssembly.dll /out:SomeAssembly.il 的 MSIL
- 重命名原来的程序集,以防万一 ren SomeAssembly.dll SomeAssembly.dll.orig
- 从 MSIL 输出和您的 KeyFile ilasm SomeAssembly.il /dll /key=keyPair.snk 构建一个新程序集
- 将 DLL 安装到 GAC gacutil -i SomeAssembly.dll