79

我已经在 .net 框架中制作了一个程序集,我打算发布到 GAC,但我找不到gacutil实用程序。

我已经在谷歌上搜索了一段时间,发现了很多建议,但没有任何效果:

  • 将程序集复制到 %window%\assemby[DOES NOT WORK]
  • 将程序集复制到 %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]

有没有人有想法解决这个问题?

4

4 回答 4

73

If you've got VS2010 installed, you ought to find a .NET 4.0 gacutil at

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

The 7.0A Windows SDK should have been installed alongside VS2010 - 6.0A will have been installed with VS2008, and hence won't have .NET 4.0 support.

于 2011-09-13T10:38:53.377 回答
36

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

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 工具
于 2012-09-27T18:26:30.310 回答
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)。

于 2011-08-03T10:46:21.393 回答
5

实际上现在有一个适用于 .NET 4.0 的 GAC 实用程序。它可以在 Microsoft Windows 7 和 .NET 4.0 SDK 中找到(SDK 支持多种操作系统——不仅仅是 Windows 7——因此,如果您使用 Microsoft 的更高版本的操作系统,那么很有可能它受到支持)。

这是SDK。您可以下载 ISO 或进行 Web 安装。如果你想要的只是 GAC Util,那么下载整个东西有点过头了;但是,它确实有效。

于 2011-11-01T15:27:10.170 回答