Visual Studio 2008 とビルド後のイベントについて 2 つの質問があります。
1) ビルド後のイベントによって呼び出される msbuild.exe のフル パスを動的に一覧表示するにはどうすればよいですか? 現在、私は次のものを持っています(これは美しく機能します):-
C:\Windows\Microsoft.NET\Framework64\v3.5\msbuild.exe
"$(ProjectDir)MSBuild\MSBuildSettings.xml"
..しかし、それはx64ビット環境を持っている場合にのみ機能します。組み込みのマジック設定を使用する方法はありますか? 例えば。$(MsBuildPath)msbuild.exe "blah....xml"
??
2) 私の msbuild タスクはいくつかのことを行い、出力として txt ファイルを生成します。msbuild xml ファイルで出力パスをそのように定義します。
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003">
<UsingTask TaskName="CustomTask" AssemblyFile="MyAssembly.dll"/>
<Target>
<CustomTask
...
OutputFile="Foo.txt"
/>
<Target>
</Project>
実際の出力フォルダーを msbuild ファイルに渡すにはどうすればよいですか? 私は試した...
OutputFile="$(OutDir)Foo.txt"
しかし、それは失敗しました:(
乾杯!
更新 #1 - 2 番目の質問への回答..
私は 2 番目の質問に答える方法を見つけました。
XML ファイルの変更 :: 外部引数が msbuild.exe 実行可能ファイルに渡されなかった場合に、内部変数名を設定するプロパティ グループを追加します。
<PropertyGroup>
<OutputFile Condition=" '$(OutputFile)'=='' ">
..\SomeFolder\Foo.txt</OutputFile>
</PropertyGroup>
<Target>
<CustomTask
...
OutputFile="$(OutputFile)"
/>
<Target>
</Project>
今、msbuild実行可能ファイルを次のように呼び出します...
msbuild.exe "C:\Temp Foo\Blah\MsbuildSettings" /p:OutputFile="C:\Folder 1\Folder 2\blah\"
そしてそれはうまくいきます:)