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
たが、驚いたことに、呼び出し元が選択したターゲットのリストを含むプロパティが見つかりませんでした。