【问题标题】:Force regeneration of Settings.settings file after change in app.config更改 app.config 后强制重新生成 Settings.settings 文件
【发布时间】:2010-09-22 10:19:10
【问题描述】:

我有一个自动构建过程,可以将应用程序设置为指定模式(例如 Dev、uat、live)。根据这种模式,我想将连接字符串更新为相关的。

但是,在我的数据访问层中有一个 app.config 文件,它存储了连接字符串,它用于提供 Settings.Settings 文件。在我的构建器中,我使用新的连接字符串更新了 app.config 的 xml,然后构建了解决方案,但是 Settings.setting 文件不会使用更新的 app.config 连接字符串重新生成,因此应用程序无法连接到正确的数据库。

是否有可能做到这一点,或者我是否因为误解了这些配置/设置文件的工作原理而采取了错误的方式?

谢谢 斯图尔特

【问题讨论】:

    标签: .net build-process build-automation application-settings


    【解决方案1】:

    是的,你正在倒退。 IDE 根据您在设置设计器中定义的设置生成 .config 文件内容。反过来也行不通。如果直接从构建中获取有效的连接字符串很重要,则在设置设计器中设置默认值。或者不要将其存储在设置中。

    【讨论】:

    • 感谢您的回复!我之前曾尝试更新 Settings.Designer.cs 文件中的连接字符串,但它分为两行和纯文本,这使得自动更改变得更加困难。您对其他方法有什么想法吗?
    • 我没有得到“自动更改”的要求。最终,必须手动更改它以匹配部署的 dbase 服务器名称和位置。如果这应该是自动的,那么使用设置可能不是正确的解决方案。还可以考虑使用 SqlConnectionStringBuilder 在运行时生成它。
    • 自动更改是指由生成器进程自动更改。目前要创建构建,我必须打开设置文件并手动编辑连接字符串。我希望能够让构建器自己替换这些文件中的连接字符串。构建器具有查询 XML 和替换值的能力,这就是我希望更改 app.config 的原因。
    【解决方案2】:

    有一种方法可以覆盖 settings.settings :

    Project.Properties.Settings.Default["ConnectionString"] = ConfigurationManager.ConnectionStrings["Project.Properties.Settings.ConnectionString"].ConnectionString;
    

    【讨论】:

      猜你喜欢
      • 2012-12-13
      • 2011-11-12
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 2015-06-07
      • 2010-12-10
      • 1970-01-01
      相关资源
      最近更新 更多