C# 如何让VSTest在不更改app.config(.NET framework)的情况下使用ServerGC?

C# 如何让VSTest在不更改app.config(.NET framework)的情况下使用ServerGC?,c#,garbage-collection,app-config,csproj,vstest,C#,Garbage Collection,App Config,Csproj,Vstest,我有一个.NET 4.7.1 C类库,在一个单独的项目中有一些相关的测试。 我希望能够在ServerGC模式下运行测试,以复制使用者对类库的标准用法(用于正常测试和性能相关测试) 根据Microsoft文档,可以通过多种方式配置ServerGC。 runtimeconfig.json不是选项,因为这是一个.NET Framework项目 在玩了一些常规项目和测试项目之后。在这种情况下,无论父进程是什么,都必须设置ServerGC才能生效。对于常规应用程序来说,这很好,并且使得使用MSBuild属

我有一个.NET 4.7.1 C类库,在一个单独的项目中有一些相关的测试。
我希望能够在ServerGC模式下运行测试,以复制使用者对类库的标准用法(用于正常测试和性能相关测试)

根据Microsoft文档,可以通过多种方式配置ServerGC。
runtimeconfig.json不是选项,因为这是一个.NET Framework项目

在玩了一些常规项目和测试项目之后。在这种情况下,无论父进程是什么,都必须设置ServerGC才能生效。对于常规应用程序来说,这很好,并且使得使用MSBuild属性
ServerGarbageCollection
或app.config文件变得很简单。在通过VSTest运行项目的情况下,这会使测试运行程序(VSTest.console.exe)成为父进程,因此意味着
ServerGarbageCollection
属性无效。我不希望必须更改vstest.console.exe的app.config,因为该计算机上的所有测试运行都使用它,因此可能会干扰其他解决方案

Microsoft文档建议可以将环境变量:
COMPlus\u gcServer
的值设置为1以启用ServerGC。可以在runsettings文件中为VSTest设置环境变量,如下面的示例和文档底部所示。文档还说明,指定环境变量将强制执行
/InIsolation
标志,以确保设置环境变量,然后启动测试运行过程。然而,这似乎不起作用

<RunSettings>
  <RunConfiguration>
    <EnvironmentVariables>
      <COMPlus_gcServer>1</COMPlus_gcServer>
    </EnvironmentVariables>
  </RunConfiguration>
</RunSettings>

1.
我添加了一个简单的测试用例,它检查
GCSettings.IsServerGC
属性,尽管环境变量在同一测试中被成功读取为值1,但仍然给出false

编辑:在完成更多阅读之后,看起来runtimeconfig.json属性、MSBuild属性和环境变量都是.NETCore。这留下了唯一的选项,即以某种方式为VSTest提供包含
GCServer
属性的app.config。有没有办法通过运行设置或VSTest的命令行参数来实现这一点