Установка GCServer = True при работе в Linux в основном проекте .net - PullRequest
0 голосов
/ 26 сентября 2018

Как установить для GCServer значение true в основном проекте .net?Обычно в проектах .net Framework я добавляю XML-файл App.Config, который устанавливает для переменной GCServer значение true, но это не работает в основном проекте .net, работающем в Linux (файл App.Config создается и публикуется, но переменная по-прежнему не 't изменить)

1 Ответ

0 голосов
/ 27 сентября 2018

Добавьте <ServerGarbageCollection>True</ServerGarbageCollection> в ваш файл csproj.Например:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    ...
    <ServerGarbageCollection>true</ServerGarbageCollection>
    ...
  </PropertyGroup>
</Project>

Чтобы убедиться, что он правильно установлен во время сборки, проверьте файл <PROJECT>.runtimeconfig.json в каталоге bin.Он должен содержать что-то вроде:

"configProperties": {
  "System.GC.Server": true
}

В некоторых случаях GCServer уже используется по умолчанию.Вы можете проверить, есть ли значение по умолчанию для вашего файла msbuild, используя msbuild /pp:

$ dotnet msbuild /pp | grep -i ServerGarbage
<ServerGarbageCollection>true</ServerGarbageCollection>
<RuntimeHostConfigurationOption Include="System.GC.Server" Condition="'$(ServerGarbageCollection)' != ''" Value="$(ServerGarbageCollection)" />

Если у вас есть файл csproj с Sdk="Microsoft.NET.Sdk.Web", то это уже значение по умолчанию:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>
</Project>

$ dotnet msbuild /pp | grep -i ServerGarbage
<ServerGarbageCollection>true</ServerGarbageCollection>
<RuntimeHostConfigurationOption Include="System.GC.Server" Condition="'$(ServerGarbageCollection)' != ''" Value="$(ServerGarbageCollection)" />
...