2012-04-25 15 views
3

Visual Studioで選択されているビルド構成に関係なく、TransformXmlタスクを使用してすべての設定をワンショットで変換しようとしています。私は.csprojファイルを編集することでそれを達成することができました。私は公開しないながら公開中のWeb.config

<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> 

ここでの問題は、変換された設定ファイルは、出力ディレクトリに置かれますが、これは、削除操作の前に起こる、です。私はconfigsが削除操作の後に変換される必要があります。

お知らせください。

答えて

0

注意MSBuildとVSBuild DOは異なります。 Afterpublish is VERY limited

Try having msbuild save the emitted slnhereでもある。

予想された時刻にファイルが変換されていることを確認しましたか?あなたのtransformxmlコールの前に<message importance="high" text="Doing Custom Transform" />を追加し、このコールの後に異なるテキストFinished Custom Transformを持つ別のメッセージを追加します。 This postは、特殊な出版目標を含むことを望むあなたの希望に直接言います。デバッグ情報を

一般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

Determining build order

一時http://blogs.msdn.com/b/msbuild/archive/2005/09/29/475157.aspx

関連する問題