VS 2008 のビルド後のイベントで呼び出したいバッチ ファイルがあります。これにはal.exe
. 上記のプロジェクトのビルドは通常、 で失敗しexit code 1
ます。
バッチ ファイルで への呼び出しを への呼び出しに置き換えるとal.exe
、C:\Windows\Microsoft.NET\Framework\v2.0.50727\al.exe
ビルド イベントは必要に応じて処理されます。これは、ビルド後のイベントで、バッチ ファイルの実行中に「al.exe」が見つからないことを意味します。
問題は、これを自分のマシンだけでなく、ビルド サーバーでも実行する必要があることです。長い目で見れば、ビルド サーバーだけでなく、ハード コードされたパス名を参照したくありません。
$(MSBuildBinPath)
環境変数に出くわし$(MSBuildToolsPath)
ましたが、ビルド後のイベントエディターにマクロとしてリストされておらず、次のようにバッチファイルで使用すると問題が解決しないようです:
"$(MSBuildToolsPath)\al.exe" /link: ...
ここで構文 (二重引用符) が間違っているのではないでしょうか? もちろん、私はすでにいくつかのバリエーションを試しました。そうでない場合:ハードコーディングされたパス文字列を使用して回避する方法について、他にヒントはありますか? MS ツールの更新されたバージョンをインストールすることを提案する投稿をここで見つけましたが、ビルド サーバーのセットアップは私の管理下になく、むしろ標準化されているため、これを変更するのはかなり骨の折れる作業です。このため、VS 2008 プロジェクトのセットアップ内から制御できるソリューションを好みます。
バッチファイルは、以前にビルドされた別のプロジェクトによって生成されたバイナリを実行した出力であるため、その別のプロジェクトでパスを特定する方法しか知らなかった場合、正しい (マシンに依存する) パスをバッチファイルに書き込むことができました。または、そのプロジェクトによって出力されるバイナリの実行時。
ティア、トーマス