3

我正在尝试使用 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>

这里的问题是,当我进行发布时,转换后的配置文件被放置在输出目录中,但这发生在删除操作之前。我需要在删除操作后转换配置。

请指教?

4

1 回答 1

0

当心 MSBuild 和 VSBuild 确实不同。Afterpublish 非常有限

尝试让 msbuild 保存发出的 sln Also here

您是否确认文件在预期的时间被转换?在您的 transformxml 调用之前添加一个<message importance="high" text="Doing Custom Transform" />,然后在此调用之后添加另一条具有不同文本的消息Finished Custom Transform这篇文章直接表达了你想做涉及专业出版目标的事情的愿望。

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

于 2012-08-07T12:59:50.943 回答