5

私は app.configs を変換するために SlowCheetah を使用しています。プロジェクトの 1 つがビルド後のイベントを実行し、ビンの出力が別の場所にコピーされるマルチプロジェクト ソリューションがあります。SlowCheetah はビルド後のイベントの後に変換することがわかったので、コピーしている app.config は変換前のバージョンです。

SlowCheetah が変換された後にコピーを実行する方法について誰か提案がありますか? カスタム ビルド タスクを作成する必要がありますか?

4

4 に答える 4

4

プロジェクトのビルドに msbuild 4.0 を使用している場合は、新しい AfterTargets BeforeTargets 属性を使用して、slowcheetah ターゲットにフックできます。

フックしたい正確なターゲット名はわかりませんが、このコードはこれを行う方法の基本概念を提供できます

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="Some_Target_Name" AfterTargets="TransformAllFiles" >
            <Message Text="= Script here will run after SlowCheetah TransformAllFiles ="/>
    </Target>
<Project>

編集済み:SlowCheetah をインストールしたところ、AfterTargets 属性が「TransformAllFiles」であることがわかりました。ターゲットの依存関係を設定するだけですAfterTargets="TransformAllFiles"

于 2012-09-14T18:27:25.727 に答える
2

アレクセイの答えは正しい解決策につながりますが、ここでは完全です:

  • プロジェクトを右クリックして選択しますUnload Project
  • プロジェクトを右クリックして、Edit [your project name].csproj
  • 一番下までスクロールして、指定されたターゲットのコメントを外し、AfterBuildこの属性を追加しますAfterTargets="TransformAllFiles"
  • Exec コマンドを使用して、ビルド後のアクションをこのターゲットに移動します。

例:

<Target Name="AfterBuild" AfterTargets="TransformAllFiles">
 <Exec Command="ECHO Hello PostBuild World!" />
</Target>
于 2012-12-05T15:33:55.183 に答える