2012-04-25 107 views
3

我試圖使用TransformXml任務來獲取所有配置轉換在一個鏡頭,無論在Visual Studio中選擇的生成配置。我可以通過編輯.csproj文件來完成它,這就是它。TransformXml 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> 

這裏的問題是,當我做一個發佈,轉換的配置文件被放置在輸出目錄,但這發生在刪除操作之前。我需要在刪除操作之後對配置進行轉換。

請指教?

回答

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調試信息:

希望這種行爲的MSBuild依賴,而不是VSBuild,因爲兩個構建過程不同。如果你是幸運的,這是遵循同樣的行爲的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

相關問題