Visual Studio 2008では、ビルド後のイベントをClickOnceパブリッシングで使用できますか?もしそうなら、どのように?
箱から出して、ビルド前のイベントしか使用できないようです。ClickOnceパブリッシングは、ビルド後のイベントが開始される前に、プロジェクトを別の場所にビルドしているようです。
Visual Studio 2008では、ビルド後のイベントをClickOnceパブリッシングで使用できますか?もしそうなら、どのように?
箱から出して、ビルド前のイベントしか使用できないようです。ClickOnceパブリッシングは、ビルド後のイベントが開始される前に、プロジェクトを別の場所にビルドしているようです。
Visual Studioが使用するMSBuildファイルを見ると、ビルド後のイベントはビルドターゲットによって実行されます。コマンドラインからmsbuildを実行し、Publishターゲットを直接呼び出すと、必ず最初にBuildが呼び出されます。VSでプロジェクトを右クリックし、[公開]をクリックすると、VSが既にビルドを実行していることを前提として、PublishOnlyと呼ばれる縮小されたターゲットが実行されます。
ビルド後のイベントは、公開前にプロジェクトを自動的にビルドするときにVisualStudioによって実行される必要があります。プロジェクトのプロパティの[ビルドイベント]タブで、イベントを「常に実行」に設定しましたか?
公開前に何が起こるかをより明確にしたい場合は、MSBuildまたはVisual Studioのどちらで実行されているかに関係なく、Publishが常に検索するBeforePublishターゲットがあります。プロジェクトファイルを手動で編集すると、下部にコメントアウトされたターゲット要素がいくつか表示されます。このようにあなた自身のものを追加してください:
<Target Name="BeforePublish">
<Exec Condition="'$(PostBuildEvent)' != ''"
WorkingDirectory="$(OutDir)" Command="$(PostBuildEvent)" />
</Target>
これにより、プロジェクトで定義したのと同じビルド後のイベントが実行されますが、これらのTarget要素内に任意のMSBuildタスクを配置できます。
I think you will find blog post Tricks with app.config and ClickOnce deployment useful. It talks about having different app.config
files for each type of deployment.