代码之家  ›  专栏  ›  技术社区  ›  djskinner

.NET用于开发和发布的不同应用程序设置

  •  5
  • djskinner  · 技术社区  · 15 年前

    我正在使用vs2010 c.net 3.5和应用程序设置(settings.settings文件)。我要做的是为我的开发和生产环境设置不同的设置,而不必使用条件语句检查调试模式来丢弃我的代码。解决这个问题的常用方法是什么?

    7 回复  |  直到 9 年前
        1
  •  5
  •   Leigh S    15 年前

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

    释放设置

    调试设置

    然后设置条件生成事件,将相应的.config文件复制到settings.settings

    
    if $(ConfigurationName) == Debug xcopy debug.settings settings.settings
    if $(ConfigurationName) == Release xcopy release.settings settings.settings
    
        2
  •  1
  •   Gerrie Schenck    15 年前

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

    在.NET中没有真正的内置机制,如果这正是您所追求的。

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

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

        3
  •  1
  •   Jamie Chapman    15 年前

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

        4
  •  1
  •   Keith Rousseau    15 年前

    如果使用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
  •  0
  •   dariol    15 年前

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

        6
  •  0
  •   Chris Conway    15 年前

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

    一旦你设置了一次或两次,就相当直接了。

        7
  •  0
  •   Community CDub    7 年前

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

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

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