Como uso “-optimize” com dotnet cli?

Sep 04 2020

Até agora eu tenho usado csc.exe do .NET Framework para compilar meus scripts C# curtos. Nada muito extravagante, eu só queria explorar um pouco e o csc.exe já estava no meu computador. Agora que estou tentando escrever meus projetos usando o SDK do .NET Core (que encontrei aqui:https://dotnet.microsoft.com/download/dotnet-core/3.1), não sei como especificar essas opções clássicas do compilador, como "-optimize".

I am aware that I don't really need "-optimize", but I would still like to experiment and maybe use some other options that I haven't considered yet. The only solution that I came up with was using the provided csc.dll (using "dotnet <path>/csc.dll ...") which meant going full circle back to csc.exe which kind of defeated the purpose of the whole sdk.

How to reproduce this situation:

  • new folder
  • "dotnet new console"
  • all nececery files are now generated ("Project.csproj", "Program.cs", "bin/", "obj/...")
  • "dotnet run"
  • what now?

Suponho que preciso adicionar algo ao arquivo .csproj, pois ele tem " <AllowUnsafeBlocks>true</AllowUnsafeBlocks>" para "-unsafe", no entanto, não encontrei nada para "-optimize".

Informações adicionais: Estou usando o Visual Studio Code , que não acho relevante para esse problema, mas apenas por precaução.

Respostas

Andy Sep 04 2020 at 01:40

Compilar para "lançamento" ativa essa opção automaticamente. Para usar isso, passe -c Releasepara o dotnetcomando.

Por exemplo, Releaseaponta para uma configuração parecida com esta:

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

Mais informações aqui .