有没有办法覆盖 app.config 中的 ConnectionString。我们的构建系统也在客户的服务器上运行,但 connectionString 需要不同。因为 app.config 在 svn 中,每次我在 app.config 中更改某些内容并提交它,我需要去客户的服务器将 connectionString 更改回他们的数据库...
例如,在 ant-scripts 中,这没有问题,但在 app.config 中,我似乎找不到办法。试过这个例如:
<connectionStrings configSource="WebConnectionString.config">
<add name="ConnectionString"
connectionString="..."
providerName="System.Data.SqlClient"/>
</connectionStrings>
我想做的是,如果 WebConnectionString.config 存在,则使用该配置文件中的 connectionString。如果没有,请使用代码示例中定义的那个(因此,在 app.config 中)。
最佳答案
网络分发项目 WOOHOO
这是一种避免大量部署麻烦的方法。您可以做的一件非常美妙的事情就是为每个客户创建一个构建配置。
然后您还可以为每个客户创建一个包含连接字符串的配置文件。根据您选择的构建配置,不同的连接字符串将被粘贴到 web.config 中。因此,现在您可以为每个客户构建一个“不同的”网站,这非常简单。
想象一个名为 config 的文件夹和诸如 cust1ConnectionString.cfg、cust2...等文件
现在您可以创建配置。您已经熟悉 Release 和 Debug,创建 cust1、cust2。
然后在 web 部署项目中有一个选项可以用另一个文件中的部分替换 web 配置的部分。
因此,您转到 cust1 部署并告诉它连接字符串位于文件 cust1connectionstrings.cfg 中。告诉它 cust2 在哪里等等......
现在不用再胡闹了,每次您为客户构建网站时,所有设置都会插入到 web.config 中,您只需交出正确配置的网站即可。 SVN 中的内容并不重要,因为每个客户都有自己的配置。甜甜的
关于asp.net - 覆盖 app.config(或 web.config)中的 ConnectionStrings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1927264/