1

他のプロジェクトのコピーを行うビルド後のイベントがあるプロジェクトがあります。残念ながらそれを変更することはできず、CIサーバーで使用するビルドスクリプトを作成するように依頼されました。

問題は、ビルド後の手順がデバッグ/リリースbinフォルダーから実行され、ビルドスクリプトを介して別のフォルダーにコンパイルすることです。したがって、1つの解決策は、プロジェクトをそのままビルドしてから、すべてのファイルをbinフォルダーから使用している出力フォルダーに手動でコピーすることです。ただし、それはちょっとしたハックのように感じるので、MSBuildタスクがPostBuildイベントを無視するように構築しているソリューションを通知する方法があるかどうか疑問に思っていました。プロパティPostBuildEvent =''を設定できると思いますが、そうではありませんでした。それらが起こらないようにするために...

ビルドスクリプトターゲットの例を次に示します。

<Target Name="Compile" DependsOnTargets="Clean;">
    <MSBuild Projects="$(SourceDirectory)\SomeSolution.sln" 
            Properties="Configuration=Release; OutputPath=$(CompilationDirectory); PostBuildEvent=''" />
</Target>

誰かが以前に同じようなことをしなければなりませんでしたか?

4

2 に答える 2

1

すべてのPostBuildEventsを無効にするには、CustomAfterMicrosoftCommonTargetsをC:\ PostBuild.config(またはファイルに名前を付けたもの)に設定し、PostBuild.configを次のようにします。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="PostBuildEvent"/>
</Project>

/p:CustomAfterMicrosoftCommonTargets="C:\PostBuild.config"をmsbuildコマンドラインに追加します

または、MsBuildタスクのプロパティを更新します。

<MsBuild Projects="$(ProjectTobuild)" Properties="Configuration=$(Configuration);Platform=$(Platform);CustomAfterMicrosoftCommonTargets='C:\PostBuild.config'" Targets="Build"/>
于 2011-11-25T12:36:55.343 に答える