7

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

4

7 回答 7

8

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

发布设置

调试设置

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


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

于 2010-03-12T13:35:24.250 回答
1

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

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

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

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

于 2010-03-12T12:18:37.357 回答
1

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

于 2010-03-12T12:19:40.483 回答
1

如果您使用 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。

于 2010-03-12T13:03:51.403 回答
0

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

于 2010-03-12T12:24:23.983 回答
0

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

一旦你设置了一次或两次,它就相当简单了。

于 2010-03-12T13:16:36.330 回答
0

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

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

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

于 2015-05-27T11:48:13.990 回答