2011-01-31 31 views
2

GacUtil.exeを実行するVS 2010ポストビルドイベントがあります。私64ビットのdevのサーバー上で32ビットと64ビットのVS 2010ビルド(プログラムファイル)

"C:\Program Files \Microsoft SDKs\Windows\v7.0A\bin\gacutil.exe" -i "$(TargetPath)". 

それは

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\gacutil.exe" -i "$(TargetPath)". 

にする必要がある。しかし、私は、チェックインしたい:私の32ビットラップトップ上

私が参照します両方のシステムで動作するプロジェクトです。

アーキテクチャに依存しないポストビルドイベントを実行する方法を知りましたか?

+0

nフォルダーを両方のマシンのPATH環境変数に追加しますか? – adrianm

+0

Exhibit 9431なぜハード・コーディング・ディレクトリー・パスが悪いのですか? –

+0

私は尋ねられたようにパスが私の質問をカバーするように.netバージョンに依存するパスが必要かもしれないと思うが、私はプロジェクトごとの解決が必要だと思う。確かに悪い悪いが、何に置き換えて? – Mark

答えて

0
for /f "tokens=2,*" %a in ('reg query "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.0a" /v InstallationFolder ^| findstr InstallationFolder') do "%b\bin\Gacutil.exe" -i "$(TargetPath)" 
2

私はこれをビルド後のステップ:sgenと呼びます。

更新のVisual Studio 2013:

このコマンドは、32ビットおよび64ビットマシンの両方で動作します。

"$(SDK40ToolsPath)$(SGenSubFolder)sgen.exe" /nologo /force /assembly:"$(TargetPath)" /compiler:/platform:$(Platform) /type:"[NameOfTheType]" 

$(SGenSubfolder)プロパティが

<PropertyGroup Condition=" '$(Platform)' == 'x64' "> 
    <SGenSubFolder>x64\</SGenSubFolder> 
</PropertyGroup> 

何Aのように定義されます混乱する...

+0

空白が含まれている場合は、 '$(TargetPath)'を引用符で囲む必要があることに注意してください。 –

関連する問題