MSBuild-コマンドラインからターゲットを呼び出す
-
02-07-2019 - |
質問
MSBuildコマンドラインから呼び出されるTARGET(/ t)の名前を取得する方法を知っている人はいますか?呼び出すことができるターゲットにはいくつかの種類があり、ユーザーへの通知にそのプロパティを使用します。
例:
msbuild Project.proj /t:ApplicationDeployment /p:Environment=DEV
.Projファイル内のターゲットワード ApplicationDeployment
にアクセスしたい。
アクセスできるプロパティはありますか?これを行う方法の手がかりはありますか?
編集:これを取得するためにプロパティを渡す必要もありません。
更新:これは、MSBuildスクリプトを使用した展開スクリプトに基づいています。ビルドサーバーは、コードのデプロイには使用されず、ビルドにのみ使用されます。ビルドサーバー自体には、オプトインできるビルド通知があります。
解決 2
答えが見つかりました!
<Target Name="ApplicationDeployment" >
<CreateProperty Value="$(MSBuildProjectName) - $(Environment) - Application Deployment Complete">
<Output TaskParameter="Value" PropertyName="DeploymentCompleteNotifySubject" />
</CreateProperty>
私は無関心な人に部分的な評価をしたいと思います。方法がわからない。
他のヒント
あなたが尋ねるとおりに正確に行う方法がわかりませんが、/ pオプションを使用してその文字列を渡すことができますか?
msbuild Project.proj /t:ApplicationDeployment /p:Environment=DEV;MyValue=ApplicationDeployment
他の唯一の方法は、各ターゲットで条件付きプロパティを使用して、最初のターゲットを起動することです。
<Target Name="ApplicationDeployment">
<PropertyGroup>
<InvokedTarget Condition="'${InvokedTarget}'==''">ApplicationDeployment</InvokedTarget>
</PropertyGroup>
...
</Target>
これを行う方法はありません(私は承知しています)。 MSBuildには、ビルドを要求されたターゲットのリストのプロパティがありません。
ただし、方法を見つけた場合、それは単一のターゲットではなく、ビルドするターゲットのリストである可能性があることに注意してください。
CCNETなどのサーバーを使用して、ビルドの実行と通知を処理することをお勧めします。確かに、MSBuildスクリプトに対して通知を送信することはできますが、そのドメインはビルドサーバーに属します。