C# 如何从代码访问和读取QTAgentService.exe.config中的应用程序设置键

C# 如何从代码访问和读取QTAgentService.exe.config中的应用程序设置键,c#,coded-ui-tests,mtm,C#,Coded Ui Tests,Mtm,我需要从QTAgentService.exe.config文件(该文件位于C:\Program Files(x86)\Microsoft Visual Studio 12.0\Common7\IDE)中读取并设置键“ControllerConnectionPeriodInSeconds”的值 在此处阅读有关控制器连接周期的信息: 我似乎找不到任何方法在代码中获得上述值。 System.Configuration.ConfigurationManager.AppSettings在此也没有帮助 任

我需要从QTAgentService.exe.config文件(该文件位于C:\Program Files(x86)\Microsoft Visual Studio 12.0\Common7\IDE)中读取并设置键“ControllerConnectionPeriodInSeconds”的值

在此处阅读有关控制器连接周期的信息:

我似乎找不到任何方法在代码中获得上述值。 System.Configuration.ConfigurationManager.AppSettings在此也没有帮助

任何帮助都将不胜感激

谢谢大家!

Anu

你有几个选择。如果在代理上运行测试,则需要修改代理计算机上的配置

您可以通过CodedUI测试来完成这项工作,或者使用C#libraries进行任何测试。如果你需要永久地修改它,我会手动修改。如果需要为单个测试设置特定值,可以在其中进行设置

您需要使用目录库和一些帮助程序方法/类来实际更改配置文件。这方面的细节对于SO的回答来说太过详细,但下面是一个如何在测试开始时加载文件的示例:

string path = Path.GetFullPath("C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\QTAgentService.exe.config");
browserWindow = BrowserWindow.Launch(new Uri(path));
不需要获取当前目录,您可以对其进行硬编码,或者在app.config中更好地定义该字符串(“C:\Program Files(x86)\Microsoft Visual Studio 12.0\Common7\IDE”)。然后,您可能需要使用C#XML解析器和XPath来修改所需的值。我在GitHub上有一些示例代码,但非常简单


祝你好运!我也不得不在CodedUI测试中做一些疯狂的事情。

Ryan,谢谢你的回复!我有一个类似于你的解决方案在我的脑海里,但我希望会有一些DLL或属性,我可以使用,而不必做上述的值。但是谢谢你!我会试试这个,然后再打给你!是的,如果你碰巧发现任何关于DLL或我可以使用的属性的信息,一定要告诉我!