asp.net - 覆盖 app.config(或 web.config)中的 ConnectionStrings

标签 asp.net web-config app-config

有没有办法覆盖 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/

相关文章:

asp.net - 使用 CORS 避免预检 OPTIONS 请求

c# - EF 迁移应该去哪里,我的类库项目还是我的 ASP.NET 项目?

asp.net - 对对象 '<Table_Name>',数据库 '<Database_Name>',模式 'dbo'的SELECT权限被拒绝。 -ASP.NET/SQL Server

c# - 是否可以为 ASP.NET MVC 路由提供比其他路由更多的服务器资源?

c# - 从 Asp.Net Core 中的 web.config 读取环境变量

.net - WCF @ServiceHost 调试 ="true"但 web.config 编译 ="false"

java - 如何为Java Web服务创建和使用配置文件?

c# - 如何使用 App.config 和 System.Diagnostics 动态设置日志文件?

c# - 企业配置思路

c# - 在自定义部分中获取同一键的多个实例