我正在准备一个工具(Web应用程序),使用该工具我可以更改托管在不同Web服务器上的各种Web应用程序的web.config文件。
我尝试使用WebConfigurationManager.OpenWebConfiguration(字符串),但它只采用相对路径,但如果我将不同Web服务器web.config文件的共享位置放置,则会失败。
MSDN参考: https://msdn.microsoft.com/en-us/library/ms151456(v=vs.110).aspx
我认为,在我的情况下,我将无法使用WebConfigurationManager.OpenWebConfiguration。
只有选项是XDocument。
请建议。
答案 0 :(得分:1)
在过去的项目中,我成功地使用了基础和转换文件:https://msdn.microsoft.com/en-us/library/vstudio/dd465318(v=vs.100).aspx。
例如,我们的web.config.base文件中有一个连接字符串,如:
...
<connectionStrings>
<!-- Connection String Changes will be lost when this file is
regenerated - Please edit your transform file instead -->
<add
name="MainConnectionString"
connectionString="(default connection string)" />
和web.config.transform文件中的条目,如下所示:
<connectionStrings>
<add name="MainConnectionString"
connectionString="(system-specific connection string)"
xdt:Transform="Replace"
xdt:Locator="Match(name)"
/>
在应用程序构建时重新创建web.config文件,在本地转换文件中定义的任何连接字符串替换默认字符串。 web.config.base文件已提交给我们的版本控制系统,而转换则不是。
因此开发人员可以有一个转换文件连接到他们的本地数据库,qa服务器有不同的转换文件,并且演示服务器再次具有不同的设置,所有这些都是最小的,因为大多数设置都保存在Web中。 config.base文件,它与存储库一起传递,只有连接字符串更改必须从一个环境维护到下一个环境。