2012-01-17 99 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文件运行