我正在使用Windows 7 Enterprise 32位。我使用了Windows命令行,也使用了VSTS 2008命令行,但是在执行gacutil.exe时,没有找到命令错误。
我想知道是否需要从某个位置安装gacutil.exe或gacutil.exe位于计算机的其他位置(我搜索了计算机,但是找到了几个名为gacutil.exe的文件,我不知道应该使用哪个文件) ?
顺便说一句:我正在使用.Net 3.5。
我正在使用Windows 7 Enterprise 32位。我使用了Windows命令行,也使用了VSTS 2008命令行,但是在执行gacutil.exe时,没有找到命令错误。
我想知道是否需要从某个位置安装gacutil.exe或gacutil.exe位于计算机的其他位置(我搜索了计算机,但是找到了几个名为gacutil.exe的文件,我不知道应该使用哪个文件) ?
顺便说一句:我正在使用.Net 3.5。
Answers:
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
您可以在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位版本)。
在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,请参阅此问题。