the MSDN documentationによると、MSBuild Messageタスクはプロパティの内容をコンソールに出力できるはずです。プロパティを表示するにはMSBuild Messageタスクを取得するにはどうすればよいですか?
これは、次の行で、非常に簡単に証明することができる。
<Message Text=" MSBuildProjectDirectory = $(MSBuildProjectDirectory)" />
私は、ビルドターゲットの一環として、上記の行を実行すると、私はこのような何かを得る:私のビルド内
[exec] MSBuildProjectDirectory = .../somefolderpath
をスクリプト実行可能ファイルへのパスを定義するプロパティがあります。定義は次のようになります。
<MyDir Condition="'$(MyDir)' == ''">somepath</MyDir>
<MyEXE Condition="'$(MyEXE)' == ''">$(MyDir)\somefile.exe</MyEXE>
$(MyEXE)の内容を出力したいと思います。
<Message Text=" MyEXE= $(MyEXE)" />
...しかし、それはしていません: 私の期待は、これが働くだろうということでした。実際には、それはまったくそこになかったかのように振る舞います。以下の場合
:
<Message Text="TEMP START"/>
<Message Text=" MSBuildProjectDirectory = $(MSBuildProjectDirectory)" />
<Message Text='dollar1 "$(MyEXE)"'/>
<Message Text="dollar2 '$(MyEXE)'"/>
<Message Text='dollar3 $(MyEXE)'/>
<Message Text="dollar4 $(MyEXE)"/>
<Message Text='at1 "@(MyEXE)"'/>
<Message Text="at2 '@(MyEXE)'"/>
<Message Text='at3 @(MyEXE)'/>
<Message Text="at4 @(MyEXE)"/>
<Exec Command='echo "$(MyEXE)"' />
<Exec Command='echo FOO' />
<Message Text="TEMP END"/>
...私は次のような出力が得られます。
[exec] TEMP START
[exec] MSBuildProjectDirectory = .../somepath
[exec] at1 ""
[exec] at2 ''
[exec] at3
[exec] at4
[exec] echo FOO
[exec] FOO
[exec] TEMP END
非常に次の行には、exeファイルを実行
<Exec Command='"$(MyEXE)" /someparameter' />
...ですそれは明らかに価値を含んでいます。
私が@(MyEXE)を使用していることは、わたしの知らないことです。
誰もが$(MyEXE)の内容をコンソールに印刷する方法を知っていますか?
ここで正しい出力が得られます( '[exec]'部分はありませんが、どこから来たのですか?)次に、表示されているものは有効なmsbuildではありません。ターゲット)。私はあなたがそれらを持っていると思う場所を追加しましたが、私は確信が持てません。あなたが使っている完全なコードと、それをどのように呼び出すかを表示してください。 – stijn