msbuildファイルで問題が発生しています。
ビルドに3つのターゲットを設定し、次の順序で実行したいと思います。
Cleanup:前のビルドの出力をクリーンアップしますBuild:実際のビルドCopyFiles:より簡単な展開のためにビルドの出力をパッケージ化するタスク
ここで問題は次のとおりです。ターゲットのプロパティ(ReleasePath)をCopyFiles呼び出し元が明示的に設定する必要があります。Cleanupまた、Buildタスクを呼び出すだけの場合、呼び出し元は出力パスを設定する必要はありません。
私の最初の試みは次のとおりです。
<PropertyGroup>
<ReleasePath></ReleasePath>
</PropertyGroup>
<Target Name="Initialize">
<Error Text="The ReleasePath property isn't defined" Condition="'$(ReleasePath)' == ''"/>
</Target>
<Target Name="CopyFiles" DependsOnTargets="Initialize">
</Target>
正常に動作しますが、Initializeターゲットはの直前CopyFiles、つまり。の後に実行されBuildます。また、Buildターゲットの実行にはかなりの時間がかかる可能性があるため、何か問題が発生した場合は、すぐにユーザーに通知してもらいたいと思います。
それで、基本的にInitialize、最初にターゲットを実行する方法はありますが、ターゲットに含まれている場合に限りCopyFilesますか?
Initializeまた、プロジェクトのInitialTargets属性を入力し、選択されている場合にのみこのターゲットを実行する条件を設定することも考えましCopyFilesたが、驚いたことに、呼び出し元が選択したターゲットのリストを含むプロパティが見つかりませんでした。