Windows 7中.NET Framework 4.0的GACUTIL在哪里?


79

我已经在.net框架中做了一个程序集,打算将其发布到GAC,但找不到gacutil通用性。

我搜索了一段时间,发现了很多建议,但没有任何效果:

  • 将Assemby复制到%window%\ assemby [DOES NOT WORK]
  • 将Assemby复制到%window%\ Microsoft.NET \ assembly [DOES NOT WORK]
  • C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ gacutil.exe / i“程序集” [returns an error: this assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded]

有谁有想法解决这个问题?

Answers:


73

如果已VS2010安装,则应在以下位置找到.NET 4.0 gacutil。

C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0工具

7.0A Windows SDK应已经安装一起VS2010 - 6.0A将已经安装了VS2008,因此不会有.NET 4.0的支持。


15
如果您使用的是64位系统,它将是C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools
Daniel Cai

嗯,看来。Windows SDK 7.1可用为64位,但似乎7.0仅为32位。很奇怪,我想我已经将Windows Explorer中的文件路径直接复制到了我的注释中。
阿德·斯金格

36

VS 2012/13 Win 7 64位gacutil.exe位于

C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0工具

Visual Studio 2013似乎也是如此
-Erk

23

.net 4.0标准安装中不包含Gacutil。他们也将GAC从%Windir%\ assembly迁移到%Windir%\ Microsoft.NET \ Assembly。

他们甚至没有像在.net 1.0 / 2.0 GAC中那样为Windows资源管理器中的文件夹添加“特殊视图”。

Gacutil是Windows SDK的一部分,因此,如果要在开发计算机上使用它,只需为当前平台安装Windows SDK。然后,您会在这样的地方找到它(取决于您的SDK版本):

C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0工具

这里有关于新GAC的讨论:.NET 4.0具有新的GAC,为什么?

如果您想在生产计算机上的GAC中安装某些产品,则需要使用Windows Installer以“正确”的方式进行操作(gacutil绝不是要在生产服务器上安装东西的工具,而只是作为开发工具),或其他工具。您可以使用PowerShell和System.EnterpriseServices dll来实现。

一般而言,基于多年的经验,我个人强烈建议完全使用GAC。如果您将DLL连同每个应用程序一起部署在其bin文件夹中,则您的应用程序将始终运行。是的,如果您在一台服务器上有多个Web应用程序,则将在服务器上获得DLL的多个副本,但是绝对值得灵活地升级一个应用程序而不破坏其他应用程序(通过引入不兼容版本的共享GAC中的DLL)。


5

实际上,现在有一个适用于.NET 4.0的GAC实用程序。在Microsoft Windows 7和.NET 4.0 SDK中可以找到它(SDK支持多个OS,而不仅仅是Windows 7,因此,如果您使用的是Microsoft的更高版本的OS,则很可能会支持它。)

这就是SDK。您可以下载ISO或进行Web安装。如果您只想下载GAC Util,就可以下载整个软件。但是,它确实有效。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.