79

GAC に公開する予定の .net フレームワークでアセンブリを作成しましたが、ユーティリティが見つかりません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

インストール済みの場合はVS2010、.NET 4.0 gacutil が次の場所にあります。

C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 ツール

7.0A Windows SDKと共にインストールされるはずでしたが、VS2010 - 6.0Aは とともにインストールされるVS2008ため、.NET 4.0 はサポートされません。

于 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 インストーラーを使用して、「適切な」方法で (gacutil は実稼働サーバーに何かをインストールするためのツールとして意図されたものではなく、開発ツールとしてのみ) 実行する必要があります。または他のツールを使用します。たとえば、PowerShell と System.EnterpriseServices dll を使用して実行できます。

総じて、数年間の経験から、個人的にはGAC をまったく使用しないことを強くお勧めします。各アプリケーションと共に DLL をその bin フォルダーにもデプロイすると、アプリケーションは常に機能します。はい、たとえば 1 つのサーバーに複数の Web アプリケーションがある場合、サーバー上に DLL の複数のコピーを取得しますが、他のアプリケーションを壊さずに 1 つのアプリケーションをアップグレードできるという柔軟性は間違いなく価値があります (共有アプリケーションの互換性のないバージョンを導入することにより)。 GAC の DLL)。

于 2011-08-03T10:46:21.393 に答える
5

実際には、.NET4.0用のGACユーティリティがあります。これは、MicrosoftWindows7および.NET4.0SDKに含まれています(SDKはWindows 7だけでなく複数のOSをサポートしているため、Microsoftの新しいOSを使用している場合は、サポートされている可能性があります)。

これはSDKです。ISOをダウンロードするか、Webインストールを実行できます。必要なのがGACUtilだけである場合、すべてをダウンロードするのはやり過ぎです。ただし、機能します。

于 2011-11-01T15:27:10.170 に答える