Gacutil.exe 在哪?

我使用的是 Windows7Enterprise32位。我使用了 Windows 命令行,也使用了 VSTS 2008命令行,但是在执行 gacutil.exe 时,出现了命令 not found error。

我想知道我是否需要从某个地方安装 gacutil.exe 或者 gacutil.exe 位于我电脑的其他地方(我搜索了我的电脑,但是找到了几个叫 gacutil.exe 的文件,我不知道应该使用哪个文件) ?

顺便说一下: 我正在使用.Net 3.5。

266878 次浏览

Gacutil 附带了 Visual Studio,而不是 VSTS。它是 WindowsSDK 的一部分,可以在 http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en上单独下载。此安装将包含 gacutil.exe。不过先看看这里

C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin

你可能已经安装好了。

正如@devi 提到的

如果您决定从现有安装中获取 gacutil 文件,请注意 来自.NET 4.0的是三个文件: gacutil.exe gacutil.exe.config 和 1033/gacutlrc.dll

您可以在 WindowsSDK 中使用该版本,但有时它可能与。NET 框架的使用,得到以下错误:

Microsoft (R) . NET 全局程序集缓存实用程序. Version 3.5.21022.8 版权(c)微软公司保留所有权利。 向缓存添加程序集失败: 此程序集由比当前加载的运行库更新的运行库生成,无法加载。

在.NET 4.0中,你需要在 Microsoft SDK v8.0 A 中进行搜索,例如: C: Program Files (x86) Microsoft SDK Windows v8.0 A bin NETFX 4.0 Tools (在我的例子中,我只有 VisualStudio2012安装的32位版本)。

  1. 打开“开发人员命令”提示符。
  2. 类型

Gacutil 在哪

在 Windows2012R2上,不能安装 VisualStudio 或 SDK。 你可以使用 Powershell 将程序集注册到 GAC 中,对我来说不需要任何特殊的安装。

Set-location "C:\Temp"
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
$publish = New-Object System.EnterpriseServices.Internal.Publish
$publish.GacInstall("C:\Temp\myGacLibrary.dll")

如果您需要获取名称和 PublicKeyToken,请参见 这个问题。