如何在GAC中注册.NET DLL文件?

时间:2010-02-02 06:50:34

标签: c# gac dllregistration

我创建了一个.NET .DLL文件,我想在GAC中注册。

我在Windows Server 2003命令提示符中使用了此命令:

C:\"Path of dll"\>  gacutil /i dllname.dll

它说路径不正确。

我是否需要在.NET cmd提示符中使用它?如果是这样,我无法找到.NET cmd提示符。

12 个答案:

答案 0 :(得分:91)

您可以使用gacutil工具执行此操作。最简单的形式:

gacutil /i yourdll.dll

您可以在程序 - >>下的开始菜单中找到Visual Studio命令提示符。 Visual Studio - > Visual Studio工具

答案 1 :(得分:32)

你需要:

  • 您的程序集的强名称(Visual Studio,项目属性,签名选项卡,签署程序集)
  • 更改构建事件(项目属性,构建事件选项卡,构建后命令行)
   cd C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin
   gacutil.exe /i "$(TargetPath)" /f /nologo
   gacutil /l "$(TargetName)" /nologo

现在,每次构建项目时,它都将安装在GAC上。

答案 2 :(得分:17)

使用Windows资源管理器将DLL文件拖放到文件夹C:\Windows\assembly中。

警告:

  

在早期版本的.NET Framework中,Shfusion.dll Windows   shell扩展允许您通过将程序集拖到File来安装程序集   资源管理器。从.NET Framework 4开始,Shfusion.dll已过时。

来源:How to: Install an assembly into the global assembly cache

答案 3 :(得分:12)

这些回复并未告诉您gacutil位于 C:\ WINDOWS \ Microsoft.NET \框架\ 1.1版* 顺便说一句。

我的v2.0文件夹中没有它。但是我试着拖着&将DLL放入C:\ WINDOWS \ Assembly文件夹中,如前所述,只要它是一个.NET库,它就更容易并且工作正常。我也尝试了一个COM库,这个失败了一个错误,它期待一个程序集清单。我知道这不是问题所在,但我想提一下,如果有人发现他们无法添加它,那可能就是原因。

- 汤姆

答案 4 :(得分:10)

From Wikipedia

  

gacutil.exe 是用于处理 GAC 的.NET实用程序。

可以使用以下命令检查 GAC 中共享程序集的可用性:

gacutil.exe /l "assemblyName"

可以使用以下命令在 GAC 中注册共享程序集:

gacutil.exe /i "assemblyName"

或者使用GUI将程序集文件放入以下位置:

%windir%\assembly\

如果您使用/?标志,则会简要描述此实用程序的其他选项,即:

gacutil.exe /?

答案 5 :(得分:4)

  • 运行开发人员命令提示符对于V2012或安装的任何版本 在你的系统中

  • gacutil / i pathofDll

  • 输入

完成!!!

答案 6 :(得分:3)

如果您担心命令提示,请尝试GACView

您还没有在DOS中正确设置PATH。您需要指向gacutil在DOS中使用它的路径。

答案 7 :(得分:3)

正如ando所说,只需将程序集拖放到C:\ windows \ assembly文件夹即可。它有效。

答案 8 :(得分:1)

如果在Windows 7上gacutil.exe(将程序集放入GAC)和sn.exe(以确保程序集的唯一性)驻留在C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ bin

然后转到gacutil的路径,如下所示,在替换程序集的路径后执行以下命令

C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ bin> gacutil / i“替换为要放入GAC的程序集的路径”

答案 9 :(得分:1)

从发布标签转到应用程序文件单击然后不必要的文件执行排除而不是确定。构建项目文件。并运行项目。

答案 10 :(得分:0)

以上解决方案看起来非常棒。但是,简单来说,我想要的只是输入程序集名称及其完整路径,如:

gacutil -i C:\MyDlls\GacDeployedAssemblies\dllname.dll

关注 C:\ MyDlls \ GacDeployedAssemblies

答案 11 :(得分:0)

我几乎尝试了评论中的所有内容,但没有成功。因此,我从Powershell进行了gacutil /i "path to my dll"的工作。

还请记住在Windows资源管理器中右键单击文件以获取“复制路径”选项时按Shift的技巧。