2008-10-06 75 views
8

我正在构建一个由多个不同客户使用的应用程序。每个客户都有相当数量的自定义业务逻辑,我已将其巧妙地重构为在运行时加载的程序集。该程序集的名称以及许多其他客户特定的设置都存储在应用程序的配置文件中。在开发过程中管理多个应用程序配置文件

眼下,这里就是我为了调试客户FOO应用程序执行:

  1. 转到文件系统在我的项目目录,并删除app.config
  2. 复制app.config.fooapp.config.foo - Copy
  3. app.config.foo - Copy重命名为app.config
  4. 告诉Windows,是的,我想改变文件的扩展名。
  5. 切换回Visual Studio。
  6. 在我的项目中打开Settings.settings项目。
  7. 点击“是”13或14次,VS询问我是否想使用app.config中已更改的新设置。
  8. 关闭Settings.settings

好吧!现在我准备好进行调试了!

在我看来,开放Settings.settings的厉害是不必要的:我不需要在Settings.cs中重新生成默认值,因为我没有使用它们。但这是我知道让VS知道app.config文件已更改的事实的唯一方法,因此构建将将其复制到输出目录。

有一个更简单的方法来做到这一点。它是什么?

回答

2

有几个人建议使用多个VS配置,我认为它会起作用,除了每次切换配置时都需要我重新构建解决方案。

我在做这件事时看起来有些蠢,但我已经使用它近一年了,而且工作非常顺利。在我的项目中,我直接为每个客户创建一个单独的app.config.XXX文件。实际的app.config文件仅用于生成Settings.cs - 它具有所有正确的设置名称及其默认值。它不会被复制到构建目录。

然后我写了一个小程序,让我选择一个客户,并简单地浏览每个项目的目录,如果我选择客户XXX,则将app.config.XXX复制到bin\debug\myprogram.exe.configbin\release\myprogram.exe.config。只要这个程序知道解决方案的根源在哪里(当我分支代码时我必须小心一点),它就像一个魅力。

6

您也可以让Visual Studio的自动化Robert`s做法是:

  1. 定义生成配置为每个客户端
  2. 在后生成事件,只是XCOPY app.config.xxx到您的bin文件夹。其中XXX是VS中可访问的构建配置的名称。例如:xcopy app.config。$(ConfigurationName)$(OutDir)/app.config

VS会为您的客户端在不同的文件夹中放置一个独立的版本,并且使用正确的配置文件。 斌/客户端1/ 斌/客户端2/

3

如何管理多个配置文件的混乱思考我做了这个工具:http://envride.codeplex.com/

其目的其究竟,使其更容易地以自动化的方式管理多个configuration files。如果你能看一看,我会很高兴。

0

后小挖和工作,我周围有我的测试项目具有多个配置工作,

  1. 在Configuration Manager,创建你所需要
  2. 复制粘贴到您的app.config的配置和添加姓名在我的情况下是AHI,FIV,MGC,所以我的配置文件看起来像:App.AHI.config,App.MGC.config,App.FIV.Config。你可以任意命名它,但保持相同的约定
  3. 添加后构建事件。在我的情况下,它看起来像:XCOPY $(PROJECTDIR)应用$(ConfigurationName)的.config $(TARGETDIR)$(的TargetName).dll.config/Y

这里是我的岗位,这样你就可以读它更多的细节

Running a Test Project with Multiple Configurations

相关问题