¿Cómo uso "-optimizar" con dotnet cli?

Sep 04 2020

Hasta ahora he estado usando csc.exe de .NET Framework para compilar mis scripts cortos de C#. Nada demasiado elegante, solo quería explorar un poco y el csc.exe ya estaba en mi computadora. Ahora que estoy tratando de escribir mis proyectos usando el SDK de .NET Core (que encontré aquí:https://dotnet.microsoft.com/download/dotnet-core/3.1), no estoy seguro de cómo especificar esas opciones clásicas del compilador como "-optimizar".

Soy consciente de que realmente no necesito "-optimizar", pero aún me gustaría experimentar y tal vez usar algunas otras opciones que aún no he considerado. La única solución que se me ocurrió fue usar el csc.dll provisto (usando "dotnet <ruta>/csc.dll ..."), lo que significaba volver al círculo completo a csc.exe, lo que anuló el propósito de todo sdk.

Cómo reproducir esta situación:

  • nueva carpeta
  • "dotnet nueva consola"
  • ahora se generan todos los archivos necesarios ("Project.csproj", "Program.cs", "bin/", "obj/...")
  • "ejecutar dotnet"
  • ¿ahora que?

Supongo que necesito agregar algo al archivo .csproj ya que tiene " <AllowUnsafeBlocks>true</AllowUnsafeBlocks>" para "-inseguro", sin embargo, no he encontrado nada para "-optimizar".

Información adicional: estoy usando Visual Studio Code , que no creo que sea relevante para este problema, pero por si acaso.

Respuestas

Andy Sep 04 2020 at 01:40

Compilar para "liberar" activa automáticamente esa opción. Para usar eso, pase -c Releaseal dotnetcomando.

Por ejemplo, Releaseapunta a una configuración que se parece a esto:

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

Más información aquí .