从另一个项目访问Web.config

我正在使用Console应用程序为一些半自动化测试编写测试平台,但我需要从我正在测试的项目中获取连接字符串。 我不想直接引用其他应用程序,或者在我正在测试的项目中有一个访问器。

到目前为止我设法做的是在我的TestUtility项目中创建一个指向另一个项目的Web.config文件的链接,并且我将它设置为Copy if newer for Copy if newer 。 它是我的测试项目的根文件夹中唯一的Web.config,但WebConfigurationManager.OpenWebConfiguration(null)似乎打开了一些OTHER Web.config,因为它中唯一的连接字符串是指。\ SQLEXPRESS(不在我解决方案的任何文件中) ,我的路径是。\ sql2008在这个配置中 – 这是不同的)。

有关如何从另一个项目访问该配置部分的任何提示或提示?

(耶的第一个问题)

迟到总比不到好:

 var filePath = @"D:\PathToConfig\Web.config"; var map = new ExeConfigurationFileMap { ExeConfigFilename = filePath }; var configFile = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None); 

虽然我在这里找到了它,但我不能把它归功于这个!

我找到的解决方案是将其作为XDocument打开并手动解析:

  XDocument xdoc = XDocument.Load("Test/Web.config"); var path = xdoc.Element("configuration").Element("connectionStrings").Element("add").Attribute("connectionString").Value; 

虽然如果你有多个连接字符串,你可能希望在connectionStrings元素上使用.Elements("add")方法并迭代各种字符串。