如何在dotnet cli中使用“ -optimize”?

问题描述

到目前为止,我一直在使用 .NET Framework 中的 csc.exe 来编译我的简短C#脚本。没什么好想的,我只是想探索一下,并且 csc.exe 已经在我的计算机上。现在,我正在尝试使用 .NET Core sdk 在这里找到https://dotnet.microsoft.com/download/dotnet-core/3.1)编写项目,现在我不确定如何指定那些经典的编译器选项,例如“ -优化”。

我知道我并不是真的需要“优化”,但是我仍然想尝试一下,也许还可以使用一些我尚未考虑的选项。我想到的唯一解决方案是使用提供的 csc.dll (使用“ dotnet /csc.dll ...”),这意味着要完全回到cem。 exe 从而破坏了整个SDK的目的。

如何重现这种情况:

  • 文件
  • “ dotnet新控制台”
  • 现在已生成所有巫术文件(“ Project.csproj”,“ Program.cs”,“ bin /”,“ obj /...”)
  • “ dotnet运行”
  • 现在如何?

我假设我需要向.csproj文件添加一些内容,因为该文件的“ -unsafe”具有“ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>”,但是我找不到“ -optimize”的任何内容

其他信息: 我正在使用 Visual Studio代码,我认为这与该问题无关,但以防万一。

解决方法

编译“发行版”会自动打开该选项。要使用它,请将-c Release传递到dotnet命令。

例如,Release指向如下所示的配置:

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

更多信息here