【问题标题】:.NET different application settings for development and release.NET 用于开发和发布的不同应用程序设置
【发布时间】:2015-05-27 19:48:13
【问题描述】:

我正在使用 VS2010 C#.NET 3.5 和应用程序设置(Settings.settings 文件)。我想要做的是为我的开发和生产环境设置不同的设置,而不必在我的代码中乱扔检查调试模式的条件语句。解决这个问题的常用方法是什么?

【问题讨论】:

    标签: c# application-settings


    【解决方案1】:

    或者您可以创建单独的配置文件并调用它们:

    Release.settings

    调试设置

    然后设置条件构建事件,将相应的 .config 文件复制到 Settings.Settings

    
    if $(ConfigurationName) == Debug xcopy debug.settings settings.settings
    if $(ConfigurationName) == Release xcopy release.settings settings.settings
    

    【讨论】:

    • 我正在尝试这个选项,但我正在退出代码 4。我的 App.config 中有一个 debug.settings 和一个 release.settings
    【解决方案2】:

    假设您指的是设置的值,我认为最好的方法是将所有生产环境值放在设置文件的注释中。或者仅在部署应用程序时设置它们。

    .Net 中没有真正的内置机制,如果这就是你所追求的。

    在我目前的工作中,我们有一个小命令行工具,它可以为给定的环境设置所有值。配置在数据库中完成。

    在我之前的工作中,我们从未将配置文件复制到部署目录,而是在需要时手动更改文件。

    【讨论】:

    • 尝试使用 cmets,但它们会在自动生成时被删除。
    【解决方案3】:

    我们从不覆盖生产系统上的 web.config 文件。如果添加了其他设置/键,我们会在发布时将其粘贴。

    【讨论】:

      【解决方案4】:

      如果您使用 Web 部署项目,您可以对其进行设置,以便替换 web.config 的不同部分。你可以在这里阅读更多关于它们的信息:http://weblogs.asp.net/scottgu/archive/2005/11/06/429723.aspx

      我们在当前工作中实际采用的另一种方法是拥有多个 web.config 文件 - 每个环境 1 个(例如 web.config、web.config.production)。然后,当我们为部署构建时,我们使用 msbuild 自动将 web.config.production 作为 web.config 交换。

      【讨论】:

        【解决方案5】:

        我认为这是缺少 xxx.config 文件。这就是为什么我使用自己的配置管理器,它可以在安装/执行应用程序的每台机器上与不同的配置一起使用。

        【讨论】:

          【解决方案6】:

          我们使用 NAnt 脚本来构建我们的解决方案,替换配置文件中的设置值,运行测试并发布。

          设置一次或两次后就相当简单了。

          【讨论】:

            【解决方案7】:

            您可以有条件地在构建过程中包含项目,例如

            <ItemGroup Condition=" '$(Configuration)' == 'Debug' " ...
            

            https://stackoverflow.com/a/2093289/254109

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-06-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-12-13
              • 2010-10-07
              • 2022-01-22
              • 1970-01-01
              相关资源
              最近更新 更多