2008-10-06 26 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

相關問題