2011-08-03 72 views
75

我在.net框架中創建了一個程序集,我打算髮布到GAC,但是我找不到gacutil的用途。Windows 7中的.net Framework 4.0的GACUTIL在哪裏?

我一直在google搜索了一會兒,我發現了很多建議,但沒有任何工程:

  • 複製assemby到%窗口%\ assemby [DOES NOT WORK]
  • 複製assemby到窗口% %\ Microsoft.NET \裝配[DOES NOT WORK]
  • C:\ Program Files文件\微軟的SDK \的Windows \ v6.0A \ BIN \的Gacutil.exe /我 「集結號」 [returns an error: this assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded]

有沒有人有想法解決這個問題?

回答

22

.net 4.0標準安裝中沒有包含Gacutil。他們也將GAC從%Windir%\ assembly遷移到%Windir%\ Microsoft.NET \ Assembly。

他們還沒打算爲Windows資源管理器中的文件夾添加一個「特殊視圖」,就像他們爲.net 1.0/2.0 GAC所做的那樣。

Gacutil是Windows SDK的一部分,因此如果您想在開發機器上使用它,只需安裝適用於您當前平臺的Windows SDK。然後你會什麼地方像這樣找它(取決於你的SDK版本):

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

這裏有對新GAC的討論:.NET 4.0 has a new GAC, why?

如果要用於生產的機器上安裝在GAC東西,你需要做到「正確」的方式(gacutil從來沒有被認爲是在生產服務器上安裝東西的工具,只能作爲開發工具),使用Windows安裝程序或其他工具。你可以例如使用PowerShell和System.EnterpriseServices dll執行此操作。

總的來說,從幾年的經驗來看,我個人強烈建議使用GAC的。如果您也將每個應用程序都部署在其bin文件夾中,那麼您的應用程序將始終工作。是的,如果您有,您將在服務器上獲得多個DLL副本。一個服務器上有多個Web應用程序,但它絕對值得能夠在不破壞其他應用程序的情況下升級一個應用程序(通過在GAC中引入一個不兼容的共享DLL版本)的靈活性。

72

如果您已安裝了VS2010,你應該在

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

7.0A Windows SDK找到一個.NET 4.0 GACUTIL應該已經安裝了一起VS2010 - 6.0A將全部安裝了VS2008,因此不會有.NET 4.0支持。

+15

如果您使用的是64位系統,這將是C:\ Program Files文件(x86)的\微軟的SDK \ Windows \ v7.0A \ Bin \ NETFX 4.0工具 –

+0

嗯,所以它似乎。 Windows SDK 7.1可用作64位,但似乎7.0只有32位。奇怪的是,我認爲我將Windows資源管理器中的文件路徑直接複製到了我的評論中。 –

5

實際上現在有一個適用於.NET 4.0的GAC實用程序。它可以在Microsoft Windows 7和.NET 4.0 SDK中找到(該SDK支持多種操作系統 - 不僅僅是Windows 7 - 所以如果您使用的是Microsoft以後的操作系統,則支持它的可能性很大)。

這是SDK。您可以下載ISO或進行Web安裝。如果您想要的只是GAC Util,那麼可以下載整件事的矯枉過正;但是,它確實有效。

35

VS 2012/13 Win 7的64位 的Gacutil.exe位於

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

這似乎也適用於Visual Studio 2013 – Erk

相關問題