Jak używać „-optimize” z dotnet cli?

Sep 04 2020

Do tej pory używałem csc.exe z .NET Framework do kompilowania moich krótkich skryptów C #. Nic nadzwyczajnego, po prostu chciałem trochę zbadać, a plik csc.exe był już na moim komputerze. Teraz, gdy próbuję pisać moje projekty przy użyciu zestawu SDK .NET Core (który znalazłem tutaj:https://dotnet.microsoft.com/download/dotnet-core/3.1), Nie jestem pewien, jak określić te klasyczne opcje kompilatora, takie jak „-optimize”.

Zdaję sobie sprawę, że tak naprawdę nie potrzebuję „-optimize”, ale nadal chciałbym poeksperymentować i może użyć innych opcji, których jeszcze nie rozważałem. Jedynym rozwiązaniem, które wymyśliłem, było użycie dostarczonego csc.dll (używając "dotnet <path> /csc.dll ..."), co oznaczało powrót do csc.exe, który w pewnym sensie zniweczył cel całego sdk.

Jak odtworzyć tę sytuację:

  • nowy folder
  • „dotnet nowa konsola”
  • wszystkie niezbędne pliki są teraz generowane („Project.csproj”, „Program.cs”, „bin /”, „obj / ...”)
  • „dotnet run”
  • co teraz?

Zakładam, że muszę coś dodać do pliku .csproj, ponieważ ma on " <AllowUnsafeBlocks>true</AllowUnsafeBlocks>" dla "-unsafe", jednak nie znalazłem nic dla "-optimize".

Dodatkowe informacje: Używam Visual Studio Code , co moim zdaniem nie jest istotne w przypadku tego problemu, ale na wszelki wypadek.

Odpowiedzi

Andy Sep 04 2020 at 01:40

Kompilacja dla „wydania” automatycznie włącza tę opcję. Aby z tego skorzystać, przejdź -c Releasedo dotnetpolecenia.

Na przykład Releasewskazuje na konfigurację, która wygląda mniej więcej tak:

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

Więcej informacji tutaj .