C# 如何在基于参数的生成开始之前更新App.Config文件

C# 如何在基于参数的生成开始之前更新App.Config文件,c#,selenium-webdriver,tfs,msbuild,msbuild-task,C#,Selenium Webdriver,Tfs,Msbuild,Msbuild Task,我正在编写一个基于MSTest的单元测试框架来运行Selenium测试。我提供了一个浏览器,测试应该在该浏览器上从app.config文件运行。我面临的问题是,我需要在各种浏览器上临时运行测试。这由键浏览器的值决定 <appSettings> <add key="browser" value="chrome"/> </appSettings> 如果我需要在另一个浏览器中运行它,我会将浏览器值更新到Firefox,一切正常 但是,对于CI环境,是否有

我正在编写一个基于MSTest的单元测试框架来运行Selenium测试。我提供了一个浏览器,测试应该在该浏览器上从app.config文件运行。我面临的问题是,我需要在各种浏览器上临时运行测试。这由键浏览器的值决定

<appSettings>
   <add key="browser" value="chrome"/>
</appSettings>

如果我需要在另一个浏览器中运行它,我会将浏览器值更新到Firefox,一切正常

但是,对于CI环境,是否有在代码之外更新app.config文件,然后触发构建的规定

由于我正在使用TFS,是否存在可以更新app.config的生成任务,或者是否存在可以在MSBUILD.exe中传递的参数

在此场景中,任何触发生成的人都可以确定他们必须在其中运行测试并触发测试的浏览器


任何指点都会对我有很大帮助

是的,您可以下载生成任务扩展并将其安装到TFS中。然后可以在VSBuild步骤之前将其添加到构建定义中。此任务可以用变量值替换文件中的字符串。在对生成进行排队时,只需更改变量的值。

试试这个博客:谢谢。但我使用的是testsettings文件,而不是运行settings文件。我不确定这种方法是否适用于testsettings文件,我在使用runsettings文件时有一些限制,需要坚持使用testsettings文件非常感谢Eddie。我会给你一个尝试和更新。非常感谢你的帮助。它起作用了。对于需要实现此功能的用户,请点击此链接