我有一个场景,其中数据库/连接字符串需要在应用程序的web.config文件中进行更改,具体取决于应用程序当前所在的位置。也就是说,我的Dev Web服务器应该连接到我的开发数据库。这同样适用于我的测试和生产环境。通过一些研究,似乎web.config transformations正是我正在寻找的,但有一个潜在的问题。多个环境的Web.config转换
我工作的公司使用自制方法来部署生产应用程序。它所做的是将测试环境中的文件(用户选择或计算差异)复制到产品环境。将使用web.config转换仍然工作?
如果我要部署到测试,然后使用我们的工具“部署”到Prod,web.config文件的测试版本将被复制到右侧?这是假设转换在构建期间应用。
我想可以将Prod版本部署到Test中,然后在Prod部署后用适当的版本替换它,但这似乎很麻烦。我错误地转变了工作方式吗?这个奇怪的问题会是什么聪明的解决方案?
我想这可能是一个问题。对于问题最后一段中提出的解决方案,您有什么想法? – Jeff 2013-02-21 21:09:51
我不太明白你在最后一段提出的建议。在Test上部署Prod转换,然后做一些替换?这似乎是错误的。做到这一点的正确方法是有一个MSBuild任务,它可以为正确的环境生成正确的包,然后将每个包部署到其目标环境中。但是由于您使用的是家庭构建工具,因此您可以执行以下操作:可以在每台服务器的相应machine.config中定义连接字符串,然后使用您在每个环境中部署的完全相同的软件包。 – 2013-02-21 21:12:44
直观的解决方案,但我没有访问machine.config。在我的公司,写入生产服务器的唯一方法是使用此工具。我想出了一个非常简单的解决方案。只需将适当的'web.config'文件转换为生产文件,而不再触摸它。感谢您的帮助。这些信息对非工作项目很有用 – Jeff 2013-02-21 21:35:50