题
当我将 dll 拖放到 vista 上的程序集文件夹时,出现错误“访问被拒绝:mydll.dll”。如何绕过错误消息并将我的 dll 添加到 gac?
解决方案
我的猜测是,您必须以管理员身份执行此操作...尝试禁用 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,路径是程序 --> Visual Studio 2008 --> Visual Studio 工具 --> Visual Studio 2008 命令提示符)以下步骤中提到的所有文件都将在 Visual Studio 中创建Studio 2008 命令提示符路径。就我而言,它是 C:\Program Files\Microsoft Visual Studio 9.0\VC
- 生成一个键file sn -k keypair.snk
- 获取MSIL的组件Ildasm someaseSemeSembly.dll /out:someassembly.il
- 重命名原始组件,以防万一ren someasemembly.dll someassembly.dll.orig
- 通过MSIL输出和您的键file iLasm someAseSembly.il /dll /dll /key = keypair.snk构建一个新的组件。
- 将dll安装到gac gacutil -i someAssembly.dll中