Как использовать «-optimize» с dotnet cli?

Sep 04 2020

До сих пор я использовал csc.exe из .NET Framework для компиляции моих коротких сценариев C #. Ничего особенного, я просто хотел немного изучить, а csc.exe уже был на моем компьютере. Теперь, когда я пытаюсь писать свои проекты, используя .NET Core sdk (который я нашел здесь:https://dotnet.microsoft.com/download/dotnet-core/3.1), Я не уверен, как указать эти классические параметры компилятора, такие как "-optimize".

Я понимаю, что мне действительно не нужно "-оптимизировать", но я все же хотел бы поэкспериментировать и, возможно, использовать некоторые другие варианты, которые я еще не рассматривал. Единственное решение, которое я придумал, заключалось в использовании предоставленного csc.dll (с использованием "dotnet <path> /csc.dll ..."), что означало возвращение к csc.exe на полный круг, что как бы нарушало цель всего SDK.

Как воспроизвести эту ситуацию:

  • новая папка
  • "новая консоль dotnet"
  • все необходимые файлы теперь созданы ("Project.csproj", "Program.cs", "bin /", "obj / ...")
  • "dotnet run"
  • что теперь?

Я предполагаю, что мне нужно добавить что-то в файл .csproj, поскольку он имеет " <AllowUnsafeBlocks>true</AllowUnsafeBlocks>" для "-unsafe", однако я не нашел ничего для "-optimize".

Дополнительная информация: я использую Visual Studio Code , который, на мой взгляд, не имеет отношения к этой проблеме, но на всякий случай.

Ответы

Andy Sep 04 2020 at 01:40

Компиляция для "выпуска" автоматически включает эту опцию. Чтобы использовать это, перейдите -c Releaseк dotnetкоманде.

Например, Releaseуказывает на конфигурацию, которая выглядит примерно так:

<PropertyGroup Condition="'$(Configuration)' == 'Release'"> <DefineConstants>$(DefineConstants);RELEASE;TRACE</DefineConstants>
    <DebugSymbols>false</DebugSymbols>
    <DebugType>portable</DebugType>
    <Optimize>true</Optimize>
</PropertyGroup>

Больше информации здесь .