2009-09-07 30 views
5

アドオンやサードパーティのツールを使用せずにこれをネイティブに実行できますか?Msbuildを使ってGACにアセンブリをインストールするには?

私はgacutilがあると知っていますが、実行するexeはありません。そうでなければ、Execタスクから呼び出すことができます。

誰かが似たようなことをしましたか?

+1

"実行するexeファイルがありません"という意味を理解できません。 gacutilは確かにあなたが実行できるexeです... –

+0

うん、gacutilはexeです –

+0

私はあなたが正しいと思います!私は誤解された。 –

答えて

0

gacuti.exeは複数の場所に置くことができます。これはsystem%path%変数にはないので、フルパスを使用する必要があります(別の方法では実行されません)。
私はC:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\を使用します。

"C:\ Program Files \ MicrosoftビジュアルStudio 8 \ SDK \ v2.0の\ビン\のGacutil.exeを" -i MyAssembly.dll

ことが報告されました同様に他の場所で発見される:

C:\ WINDOWS \ Microsoft.NET Frameworkの\ \ V1.1.4322 \ Gacutil.exeを
C:\プログラムファイル\マイクロソフトのSDK \ Windowsの\ v6.0A \ bin \ gacutil.exe
C:dir gacutil.exe /s /a:\ Program Files \ MicrosoftビジュアルStudio 9.0 \ VC \は

それは、Windowsの検索、またはコマンドラインを使用している見つけるための簡単な方法をGacutil.exeを。

残念ながら、gacutilが見つからないサーバーがいくつかあり、手動でdllをインストールする必要がありました。

+3

正式には、gacutilはSDKツールなので、最も正確な場所は、レジストリキー "HKLM \ SOFTWARE \ Microsoft \ SDK \ Windows"の "CurrentInstallFolder"の下にあるパスになります。 – bobbymcr

+0

それは良いことを知っている。ありがとう。 – Kobi

1

Gacutil.exeは、.NETアセンブリの「devボックス」インストールを実行するための標準サポートツールです。ビルドタスクの一部としてアセンブリをGACにしたい場合は、単にExecタスクを使用して呼び出すことをお勧めします。

実際に新しいプロセスを作成せずにこれを行うには、カスタムMSbuildタスクを作成して、gacutil.exeの処理に必要なCOM相互運用機能呼び出しを実装する必要があります。 Junfeng Zhang's blog postは、このルートに行きたい場合は、良い出発点になります。

6

MSBuild Community Tasks(無料)から「GacUtil」タスクを使用する必要があります。 これは、実行ファイルを呼び出すよりもきれいだと思います。

+0

+1内部的にはツールを探すのではなく、GAC APIを呼び出すBTW –

関連する問題