2011-05-26 36 views
1

我有所有需要訪問同一組的配置文件幾個ASP.NET MVC Web項目。由於我有多個需要共享的配置文件,因此擁有它們的多個副本並不理想。ASP.NET結合在構建覆蓋多個項目部署

隨着Maven3,我可以覆蓋上後,其他人構建的頂級個人J2EE Web應用的,所以我可以做一個只包含配置文件一個項目,並把它組合到每個單獨的Web應用程序項目。

有沒有辦法用的MSBuild或任何其他.NET構建工具來實現這一目標?

我唯一的解決方案是使用構建事件將文件從一個項目複製到其他項目中,但通過MSBuild創建部署包時,它只打包作爲項目一部分的文件,並忽略任何其他文件在文件夾中。

我的最終目標是將這些配置文件包含在使用msbuild /t:Package生成的部署項目中(這些配置文件最終會部署到IIS7,希望它們可以滿足所有需求)。

+0

另外,我喜歡聽說有其他方法可以與多個Web項目共享配置文件。 – 2011-05-26 00:51:10

回答

0

我找到了解決我的問題。

  • 我把我的配置文件放在某個共享項目的文件夾中。
  • 右鍵單擊該配置文件,然後選擇屬性。
  • 確保生成操作內容複製到輸出目錄一直拷貝
  • 參考「共享項目」從「主項目1」和「主項目2」

現在,當「主項目1」和「主項目2」建成,其參考的項目(「共享工程」)也將建成,這將有發佈到/ bin目錄中的配置文件。

要訪問這些配置文件:

string configPath = HttpRuntime.BinDirectory + string.Format(@"ConfigDirectory\{0}.config", someConfigFileName); 

然後你就可以讀取這個配置文件(假設它是在標準.NET配置格式)使用:

ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap 
      { 
       ExeConfigFilename = configPath 
      }; 
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); 

var settings = ((AppSettingsSection)config.GetSection("appSettings")).Settings;