イベントの発行後に単純なタスクを呼び出そうとしています。「発行」とは、Visual Studio で発行することを意味し、プロジェクトを右クリックして「発行...」を押します。Build イベントで既にテストしているため、正常に動作するプロジェクト ファイルに (インポートされた) ターゲット ファイルを含めました。http://msdn.microsoft.com/en-us/library/ms366724.aspxで、必要なことを行う AfterPublish イベントがあることがわかりましたが、そうではありません。これが Visual Studio の発行時にトリガーされる同じイベントであるかどうかはわかりません。誰かがこれを明確にしてください。私の質問は、Visual Studio のパブリッシュでターゲット ファイルから任意の種類のタスクをトリガーする方法です。
私はターゲットファイルでこれを試しました:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="AfterPublish">
<Message Label="Test"></Message>
<Warning Label="Test"></Warning>
</Target>
</Project>
Visual Studio 2010 を使用しています。
編集:
私は実際に、Visual Studio のパブリッシュで特定のアクションを実行する方法を探しています。ビルド イベントも追加しようと考えていましたが、公開中かどうかを判断する方法がわかりません。
編集: @Alexey Shcherbak 迅速な返信ありがとうございます。MSBuild 出力でこれを取得しています。
12/10/2012 12:29:40 AM: Done executing task "CallTarget".
12/10/2012 12:29:40 AM: Done building target "PipelinePreDeployCopyAllFilesToOneFolder" in project "PublishTestApp.csproj".
12/10/2012 12:29:40 AM:Done building project "PublishTestApp.csproj".
Deleting existing files...
Publishing folder /...
Publishing folder Account...
Publishing folder bin...
Publishing folder Scripts...
Publishing folder Styles...
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
したがって、私のタスクは PipelinePreDeployCopyAllFilesToOneFolder の直後に実行されますが、ファイルの実際のコピーの前に実行され、その時点で公開がまだ完了しているとは考えていません。もちろん、実際にこれをテストしたので、MSBuild タスクで、Publish フォルダーにコピーされるはずのテキスト ファイルから単純な読み取りを実行していたのですが、失敗しました。