私はmsbuildを使って作業しているビルドタスクを持っています。 タスク内にはいくつかのターゲットがあり、そのうちのいくつかは準備作業を実行します。複数のDependsOnTargetsが実行されない
"msbuild myEvent.msbuild/t:event3"を実行すると、イベントが実行されます。 DependsOnTargetsの最初のイベントは実行されますが、ターゲットのリストの2番目のイベントは実行されません。 例
<!-- only event1 will fire -->
<Target Name="event3" DependsOnTargets="event1; event2">
<Task TaskAction="myAction3"/>
</Target>
<Target Name="event1" DependsOnTargets="event4">
... do tasks here
</Target>
<Target Name="event2" >
... do tasks here
</Target>
<Target Name="event4" >
</Target>
私はDependsOnTargets値にスペースを排除することによって、これを変更しようと試みてきました。セミコロンで区切られた値があることを確認します。 BeforeTargetsとAfterTargetsを成功させずに使ってみました。
私のmsbuildコードは、ToolsVersion 4.0を対象としています。
DependsOnTargetsの仕組みに欠けているものがありますか?
EDIT
- は、私は私の問題を考え出したと思います。 MSBuildでは、同じターゲットを複数回実行することはできません。この場合
- は私が
- は、zipファイル
- からいくつかのデータベースファイルを解凍サービス
- を停止するデータベースサービスを開始し、データベースサービスに
- ドロップデータベースを開始
-
-
次の操作を行う必要があり
- アタッチデータベース
- データベースに対してさらに処理を実行...
- 最初の開始データベースサービスは、データベースを削除してサービスを停止するだけでなく、実行されます。データベースサービスを開始する次の呼び出しは失敗します。
もう少し考えてみたら、私はその問題を知っていると思います。問題は、私の一連の出来事では、私は複数のイベントの1つを呼び出すということです。イベントは既に1回実行されているため、イベントは再び呼び出されません。私の場合は、サービスを開始し、アクションを実行し、サービスを停止し、サービスが停止している間に別のアクションを実行してから、サービスを再開して別のアクションを実行する必要があります。 :) –
私は繰り返しコードを減らすために、タスクのようなターゲットを利用しようとしています。ターゲットは一度だけ実行され、一度表示されます。 –
はい、ビルド中の後続ターゲットがそれに依存する場合でも、ターゲットは1回のビルド中に2回実行されることはありません。ターゲットが実行されると、ビルドへの貢献が完了します。元の問題が解決されてから、24時間後に回答を投稿してマークすることができます。 –