在构建期间设置web.config属性(而不是通过发布)

我正在尝试使用Web Setup Project部署应用程序。 我遇到的问题是web.config文件永远不会被转换。 根据这篇文章 ,按照设计,转换只发生在发布期间。 如果依次构建安装项目调用其他程序集构建命令,如何正确更新web.config属性?

我通过添加一个虚拟的web.Template.config文件来修复它,就像Andriy K在这篇文章中建议的那样,然后在我的BeforeBuild事件中调用TransformXml,如下所示:

   

最简单的选择是安装命令行xslt实用程序并在项目的构建后操作中启动它。 您还可以使用许多MSBuild XSLT任务之一并将其添加到.csproj文件中。 (它只是一个MSBuild脚本文件;底部附近已有注释,说明如何自定义构建。)

您还可以在安装项目的预构建操作中执行这些步骤中的任何一个,而不是Web应用程序的构建后操作。 如果您还使用发布向导,则第二个选项可能会更好,因为它不会干扰发布者中正常的XSLT转换。

Microsoft XSLT命令行实用程序: http : //www.microsoft.com/downloads/en/details.aspx? FamilyID = 2fb55371-c94e-4337-b0e9-db4816552e41&displaylang = en

示例MSBuild XSLT任务: http : //www.arlt.eu/blog/2007/10/01/msbuild-xslt-task/