【发布时间】:2016-06-07 10:03:52
【问题描述】:
Visual Studio 中的 Web 部署和 *.pubxml 文件有一个简洁的功能,它允许在部署时应用 web.config XML 转换,而不仅仅是构建时,它支持按部署(即按环境)web.config自定义。
问题是,转换“通过魔法”发生 - 如果您的网站根目录中有一个名为 web.{profile name}.config 的文件,那么它将在发布期间应用 - 但您无法禁用此功能,或者(至于我可以告诉)指定不同的转换文件。我也看不到如何使用 pubxml 文件转换其他 web.config 文件(例如 MVC 项目中的 Views/web.config 文件)。
我确实注意到 pubxml 文件本身就是 MSBuild XML 文件 - 很明显,部署过程只是执行具有正确目标的那些 MSBuild 文件的问题 - 所以为了获得我想要的功能,我只是需要使用我自己的自定义构建步骤修改pubxml 文件。
...但是我应该如何添加这些构建步骤?目标的扩展点和事件是什么?
【问题讨论】:
-
我自己没有这样做,但是您应该能够创建一个包并从中排除 web.config 文件。然后您可以自己运行转换(slow cheetah 或其他),并指定您希望在 msdeploy 部署时将转换后的文件与包一起部署。这将在调用生成的 cmd 或手动调用 msdeploy 中完成。无论哪种方式,它最终都会被放入对 msdeploy 的调用中。我自己还没有这样做,但理论上应该可以,因为您可以显式传递其他文件进行部署
标签: web-config web-deployment msdeploy web.config-transform