gacutil不被视为内部或外部命令?

时间:2012-09-12 10:40:28

标签: c# console

我创建了一个添加外部DLL参考的控制台应用程序   现在我必须将我的外部Dll部署到我的大会上   当我试图在GAC中添加我的dll时。

  GACUTIL.EXE /i MyLibrary.dll  

命令将我的dll添加到Assembly中,它显示我的错误

*gacutil is not recognized as an internal or external comma*

我该如何解决?

5 个答案:

答案 0 :(得分:7)

Windows 10 路径为:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

答案 1 :(得分:3)

“但我如何在客户端服务器上部署我的dll,因为他可能没有visual studio”

如果我没记错的话,gacutil也出现在C:\ windows \ Microsoft.Net \ some folder \

另一种方式:如果使用原语.cmd =>您可以将gacutil.exe和gacutil.exe.config与脚本捆绑在一起。

另一种方式:如果您使用的是Windows安装程序,则它具有对GACing程序集的内置支持。

另请注意,x86和x64程序集有不同的GAC(如果程序集是MSIL,请忽略)。

答案 2 :(得分:3)

可能重复:GAC 32bit vs. 64bit (至少从.Net 3.0开始,gacutil不再是客户端操作系统的一部分,你需要使用适当的安装程序或安装明显有点过分的Windows SDK)

答案 3 :(得分:3)

如果您已经安装了Visual Studio,则可以使用Developer Command Prompt代替普通的Command prompt直接访问gacutil

您可以在此处找到Developer Command Prompt

Start Menu > Visual Studio 20XX > Developer Command Prompt for VS20XX

答案 4 :(得分:0)

我们的运行Windows Server 2016的生产盒没有用于全局程序集缓存(GAC)的MS SDK工具!!!所以我复制了整个目录

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\ 

从我的开发笔记本电脑(已安装VS 2017的Windows 10)到该生产服务器,我要在其中将.dll注册到生产服务器的全局程序集。
copy GACUtil.exe from a dir to the other computer

我需要注册的程序集是:x86 dotNet 2.0的_Net35scannersMonitor.dll和x64 dotNet 4.x的_Net40scannersMonitor.dll。

在复制的gacUtil所在的目录提示符下,输入:

  gacutil -i D:\resource\Library\_Net35scannersMonitor.dll

  gacutil -i D:\resource\Library\_Net40scannersMonitor.dll

我使用相同的gacUtil.exe(文件版本4.6.1055.0)来完成这两个操作。而且它们最终都位于正确的位置dotnet2x86(C:\ Windows \ assembly)和dotnet4(C:\ Windows \ Microsoft.NET \ assembly \ GAC_MSIL)- 我不必使用2个不同的gacUtil.exe。

结果:

The x86 .dll and x64 .dll went to correct assembly respectively

结论:即使您的机器没有安装VS,也可以从装有VS的PC复制gacutil.exe及其bin。无需特殊的下载/安装。然后,您可以将复制的gacutil用于x86和x64程序集!!!