2012-01-17 95 views
2

我正在使用IBM的Rational Functional Tester(RFT)工具創建一個測試項目(我們使用它的VB版本,它只支持.net 3.5)。在這個項目中,我使所有數據庫查詢使用實體框架。問題是實體框架從App.Config文件中檢索「元數據」,「連接字符串」等,並且RFT不會讓我添加一個App.Config到項目中(我猜是設計的這樣 - 我GOOGLE了添加一個App.Config文件到一個rft項目,並沒有提出任何意見),實體框架要求你在入口點的app.config文件。我建立了字符串傳遞給實體代碼框架,但我的老闆真的不喜歡那樣。 因此,看看我的選擇,我認爲以下2種解決方案中的任何一種都應該足夠了(或者如果您有更好的解決方案,請告知)。在運行時加載App.Config

  1. 是他們在運行時加載App.Config的任何方式。
  2. 他們有什麼方法可以將一個App.Config添加到RFT項目(應該 真的是我的第一個問題)。

如果你們可以幫助我,這將是偉大的。 在此先感謝。

+0

在文件夾中我目前正在進行的一個項目。我通過實體上下文連接,我沒有參考我的web.config中的EF。你確定你需要一個配置嗎? – 2012-01-17 02:19:06

+0

@kcbeard:奇怪我昨天添加了一條評論,但似乎沒有看到它。回答你的評論是的,我確實需要一個配置文件,我創建了一個vb.net控制檯應用程序來測試它是否是rft或其他東西,事實證明,在將配置文件添加到控制檯應用程序後,它沒有任何問題。 – user602182 2012-01-18 15:02:46

+0

@kcbeard http://stackoverflow.com/questions/3491165/the-specified-named-connection-is-either-not-found-in-the-configuration-not-int – user602182 2012-01-19 01:28:02

回答

2

了大量的研究,我發現,你可以通過使用在運行時加載配置文件後,

 ExeConfigurationFileMap map = new ExeConfigurationFileMap(); 
     map.ExeConfigFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Assembly.GetExecutingAssembly().ManifestModule.Name + ".config"); 
     Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None); 
     var configValue = config.ConnectionStrings.ConnectionStrings["refrenceNameinConfigfile"].ConnectionString; 

只要確保你的App.config是你的exe文件運行