2017-06-20 14 views
0

ビルド操作後に実行するカスタムタスクを作成しました。ビルドプロセスの後に常にカスタムMSBuildタスクを実行

<Target Name="AfterBuild" /> 
<Target Name="MyTarget" 
     AfterTargets="AfterBuild"> 
    <MyTask ... /> 
</Target> 

QUESTION:?プロジェクト/再構築する必要はありませんに変更がないので、ビルド操作は、トリガされたが、実行しなかった場合には、タスクを実行することが可能ですか

つまり、プロジェクトが再構築されていなくても、ビルドプロセスの終了時に常にタスクを実行します。

UPDATEAfterTargets="Build" またはプロパティを設定 <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> を使用しても解決しません。何があるので、Build: 0 succeeded, 0 failed, 1 up-to-date, 0 skipped

+0

ビルドプロセスをもう一度トリガーしましたか? Visual Studioでビルドをクリックするだけですか? –

+0

@ Leo-MSFTはい、正確です。 –

答えて

1

ビルド操作がトリガーされた場合は、タスクを実行することが可能ですが、実行しなかった:

ビルドプロセスをもう一度トリガーした後、私は出力のみを取得していませんプロジェクトの変更/再度ビルドする必要はありませんか?

私が正しくあなたを理解していれば、あなたのプロジェクトファイルでこのプロパティを定義することができます。

<PropertyGroup> 
    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> 
</PropertyGroup> 

注:このメソッドは、Visual Studioは、MSBuildの通常の最新のチェックをバイパスし、使用しているようですいくつかの種類のカスタムチェックは高速ですが、カスタマイズされたビルドターゲットを破るという副作用があります。

更新:

  1. プロジェクトファイルでプロパティを定義します:
  2. カスタムのMSBuildタスクを追加し、この方法は私が答えに詳細を作ってみましょう、あなたのプロジェクトで動作しない理由を わからない理由いくつかのメッセージ情報。
  3. プロジェクトをビルドし、出力を確認します(ログファイルの冗長性は標準です)。
  4. プロジェクトを再度ビルドし、出力を再度確認します。
+0

MSBuild cmdはオプションではありません。プロパティを定義することは役に立ちませんでした。 –

+0

@ChristianSt。お返事ありがとうございます。私は私のmacineでそれをテストする、それはうまく動作します。なぜそれがあなたのプロジェクトのためにうまくいかない理由がわからない。新しい空のプロジェクトを作成し、この手順を実行して問題がないかどうかを確認してください。そうでない場合は、この問題を再現できるように、プロジェクトの種類やその他の情報を私たちに教えてください。 –

+0

Aaaahhh申し訳ありません...プロパティを設定するのは解決策です。私のせいで、プロジェクトファイルにプロパティを直接設定していないということでした。代わりに、私は複数のプロジェクト間で共有されている(インポート....)プロジェクトファイルに設定します。それは今働いている。ありがとうございます:-) –

0

私はAfterTargets="Build"代わりのAfterBuild使用している場合は、メッセージが出力ウィンドウに、私は(.NET標準クラスLibaryと.NETのコアコンソールアプリケーション)ソリューションを構築するたびに書かれています。

+0

それを再現できません。私は、出力(ビルド:0成功、失敗0、最新1、スキップ0)だけを(前と同様に)取得します。 –

関連する問題