3

TransformXml タスクを使用して、ビジュアル スタジオで選択されたビルド構成に関係なく、すべての構成を一度に変換しようとしています。私は .csproj ファイルを編集することでそれを達成できました。

    <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll"/>
<Target Name="TransformWebConfig"  AfterTargets="AfterPublish">
    <TransformXml Source="$(SolutionDir)WCFServices\Web.config" 
              Transform="$(SolutionDir)WCFServices\Web.Release.config" 
              Destination="$(OutDir)WebRelease.config" 
              StackTrace="true" />
</Target>

ここでの問題は、公開中に、変換された構成ファイルが出力ディレクトリに配置されることですが、これは削除操作の前に発生します。削除操作の後に構成を変換する必要があります。

お知らせ下さい?

4

1 に答える 1

0

MSBuild と VSBuild DO は異なることに注意してください。アフターパブリッシュは非常に限られています

発行された sln を msbuild で保存してみください

ファイルが予想された時間に変換されていることを確認しましたか? transformxml 呼び出しの前に追加し、この呼び出しの後 <message importance="high" text="Doing Custom Transform" />に別のテキストを含む別のメッセージを追加します。この投稿は、専門的なパブリッシング ターゲットに関連することをしたいというあなたの願望を直接的に物語っています。Finished Custom Transform

msbuild の一般的なデバッグ情報:

2 つのビルド プロセスが異なるため、この動作が VSBuild ではなく msbuild に依存していることを願っています。運が良ければ、これは MSBuild と同じ動作に従っており、msbuild デバッグ プロセスに従います。

msbuild の魔法のような動作と同様に、CSProjファイル内で任意のimport target=コードを探し、それらのファイルを探しに行きます。これらをたどると、これについて決定を下している部分にたどり着きます。

また、VS のデバッガーをビルド プロセスにアタッチすることもできます - http://blogs.msdn.com/b/visualstudio/archive/2010/07/06/debugging-msbuild-script-with-visual-studio.aspx + http:/ /blogs.msdn.com/b/visualstudio/archive/2010/07/09/debugging-msbuild-script-with-visual-studio-2.aspx

ビルド順序の決定

また、ビルドの冗長性を一時的に上げますhttp://blogs.msdn.com/b/msbuild/archive/2005/09/29/475157.aspx

于 2012-08-07T12:59:50.943 に答える