Como uso “-optimize” com dotnet cli?
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
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 .