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

Posted

技术标签:

【中文标题】如何在 dotnet cli 中使用“-optimize”?【英文标题】:How do I use "-optimize" with dotnet cli? 【发布时间】:2020-09-03 18:30:29 【问题描述】:

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

我知道我并不真正需要“-optimize”,但我仍然想尝试一下,也许可以使用一些我还没有考虑过的其他选项。我想出的唯一解决方案是使用提供的 csc.dll(使用“dotnet /csc.dll ...”),这意味着要回到 csc。 exe 哪种破坏了整个sdk的目的。

如何重现这种情况:

新文件夹 “dotnet 新控制台” 现在会生成所有需要的文件(“Project.csproj”、“Program.cs”、“bin/”、“obj/...”) “dotnet 运行” 现在怎么办?

我认为我需要在 .csproj 文件中添加一些内容,因为它有“-unsafe”的“<AllowUnsafeBlocks>true</AllowUnsafeBlocks>”但是,我没有找到任何“-optimize”的内容。

附加信息: 我正在使用 Visual Studio Code,我认为这与此问题无关,但以防万一。

【问题讨论】:

【参考方案1】:

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

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

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

更多信息here。

【讨论】:

天哪,是的,我正在寻找“\true\\>”,谢谢。我不知何故在文档中没有找到它,所以我认为它不存在。我刚刚通过快速性能测试(在调试版本上)进行了尝试,真假之间的差异是天文数字(*对于我所做的测试)。

以上是关于如何在 dotnet cli 中使用“-optimize”?的主要内容,如果未能解决你的问题,请参考以下文章

Angular-CLI 和 dotnet cli 如何编写命令同时观看? [复制]

如何使用 dotnet cli 命令以 VB.NET 语言创建 ASP.NET Core 项目?

通过dotnet cli中的自定义模板创建类时如何检测命名空间

在 mv 到其他目录之后,Dotnet CLI 无法构建?

迷失在版本和工具中:.NET Core、Core Tools、dotnet Core CLI、

Visual Studio 在构建、重建和清理解决方案时使用啥 dotnet core cli 命令(或 msbuild 命令)?