128

我正在使用 Windows 7 Enterprise 32 位。我用过Windows命令行,也用过VSTS 2008命令行,但是执行gacutil.exe时,出现command not found错误。

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

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

4

4 回答 4

158

gacutil 带有 Visual Studio,而不是 VSTS。它是 Windows SDK 的一部分,可以在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

于 2010-08-03T14:34:58.760 回答
79
  1. 打开开发人员命令提示符。
  2. 类型

在哪里 gacutil

于 2016-01-31T13:01:11.597 回答
7

在 Windows 2012 R2 上,您无法安装 Visual Studio 或 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,请参阅问题。

于 2019-05-06T14:18:03.660 回答
6

您可以使用 Windows SDK 中的版本,但有时它可能与您使用的 .NET Framework 版本不同,从而导致以下错误:

Microsoft (R) .NET 全局程序集缓存实用程序。版本 3.5.21022.8 版权所有 (c) Microsoft Corporation。版权所有。将程序集添加到缓存失败:此程序集由比当前加载的运行时更新的运行时构建,无法加载。

在 .NET 4.0 中,您需要在 Microsoft SDK v8.0A 中进行搜索,例如:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools(在我的情况下,我只有Visual Studio 2012 安装的 32 位版本)。

于 2015-11-17T12:01:57.900 回答