我正在尝试使用TransformXml任务来一次性转换所有配置,而不管在visual studio中选择的构建配置。我可以通过编辑.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>
这里的问题是在我发布时,转换的配置文件放在输出目录中,但这发生在删除操作之前。我需要在删除操作后转换配置。
请指教?
答案 0 :(得分:0)
注意MSBuild和VSBuild DO不同。 Afterpublish is VERY limited
Try having msbuild save the emitted sln here。
您是否验证过该文件是否在预期时间进行了转换?在您的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
同样在暂时提高构建详细程度http://blogs.msdn.com/b/msbuild/archive/2005/09/29/475157.aspx