如何在C#应用程序的自定义部署期间修改Web.config文件?

问题描述:

我正在创建一个使用PowerShell的自定义部署脚本,作为部署中包含Windows服务和Web服务的应用程序。有5-6个web.config文件和类似数量的安静程度很大的app.config文件。部署是在网络外的非域计算机上完成的,因此使用VS或Teamcity创建部署不是一种选择。因此我不能使用web.config转换选项。我可以考虑使用msdeploy,但现在在高级阶段,除了更新配置文件之外,所有工作都已完成。如何在C#应用程序的自定义部署期间修改Web.config文件?

是否有一个工具可以用来提供一个应答文件来转换web.config和app.config?我可以通过手动指定XML节点名称和它们的对应关系来创建一个,但有一个工具会很好。

我们使用MSDeploy.exe和WebDeploy Parameterization来部署Web应用程序,Windows服务,计划任务和SQL数据库。 WebDeploy参数化在部署时发生,而不是编译时间,可用于编辑所有类型的文件(不仅仅是配置文件)。

将MSDeploy用于非Web项目并不像使用WebDeploy那么容易,但所有功能都在那里。通过一点点投资,您可以自动执行Microsoft堆栈上的任何操作。