14

MSBuild コマンド ラインから呼び出された TARGET (/t) の名前を取得する方法を知っている人はいますか? 呼び出すことができるターゲットにはいくつかの種類があり、そのプロパティをユーザーへの通知で使用したいと考えています。

例:

msbuild Project.proj /t:ApplicationDeployment /p:Environment=DEV

ApplicationDeployment.Proj ファイル内のターゲット ワードにアクセスしたい。

アクセスできる物件はありますか?これを行う方法の手がかりはありますか?

編集:これを取得するためにプロパティも渡す必要はありません。

更新:これは、MSBuild スクリプトを使用した展開スクリプトに基づいています。私のビルド サーバーはコードのデプロイには使用されず、ビルドのみに使用されます。ビルド サーバー自体には、オプトインできるビルド通知があります。

4

4 に答える 4

11

あなたが求めていることを正確に行う方法がわかりませんが、 /p オプションを使用してその文字列を渡すことができますか?

msbuild Project.proj /t:ApplicationDeployment /p:Environment=DEV;MyValue=ApplicationDeployment

私が確認できる他の唯一の方法は、各ターゲットで条件付きプロパティを使用し、最初に呼び出されるターゲットを確立することです。

<Target Name="ApplicationDeployment">
<PropertyGroup>
  <InvokedTarget Condition="'${InvokedTarget}'==''">ApplicationDeployment</InvokedTarget>
</PropertyGroup>

...
</Target>
于 2008-09-29T19:29:04.513 に答える
8

答えが見つかりました!

<Target Name="ApplicationDeployment" >
    <CreateProperty Value="$(MSBuildProjectName) - $(Environment) - Application Deployment Complete">
      <Output TaskParameter="Value" PropertyName="DeploymentCompleteNotifySubject" />
    </CreateProperty>

私は無関心に部分的なクレジットを与えたい. それを行う方法がわからない。

于 2008-09-30T16:04:10.487 に答える
4

これを行う方法はありません(私は知っています)。MSBuild には、ビルドが要求されたターゲットのリストのプロパティがありません。

ただし、方法を見つけた場合、それは単一のターゲットではなく、構築するターゲットのリストである可能性があることに注意してください。

于 2008-09-29T19:51:26.720 に答える
-3

ビルドの実行と通知を処理するには、CCNETなどのサーバーを使用することをお勧めします。もちろん、MSBuildスクリプトに対して通知を送信することはできますが、そのドメインはビルドサーバーに属しています。

于 2008-09-29T21:21:27.143 に答える