如何在 VS Code 和/或 .NET Core 中设置编译器选项?

Posted

技术标签:

【中文标题】如何在 VS Code 和/或 .NET Core 中设置编译器选项?【英文标题】:How to set compiler options in VS Code and/or .NET Core? 【发布时间】:2019-06-19 23:04:29 【问题描述】:

我正在尝试为通过 .NET Core 编写的 C# 库项目设置 -checked 编译器选项,使用 VS Code 作为 IDE。我该怎么做?

【问题讨论】:

【参考方案1】:

大多数(全部?)编译器选项都有相应的构建参数。您可以在要添加的参数之前使用-p:(或/p:)标志将构建参数传递给dotnet build。然后使用name=value 结构作为参数名称和相应的值。

从-checked compiler option 的文档中,对应的构建参数是CheckForOverflowUnderflow。

以下是 PowerShell 中使用 dotnet build 参数 CheckForOverflowUnderflow 的示例,该构建等效于 -checked 编译器选项。

PS C:\Users\me\source\repos\Solution\Solution.Models> dotnet build -p:CheckForOverflowUnderflow=true .\Solution.Models.csproj
Microsoft (R) Build Engine version 16.7.0+7fb82e5b2 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  All projects are up-to-date for restore.
  Solution.Models -> C:\Users\me\source\repos\Solution\Solution.Models\bin\Debug\netstandard2.0\Solution.Models.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:01.18
PS C:\Users\me\source\repos\Solution\Solution.Models>

【讨论】:

这需要一段时间才能找到,但这也是您可以有条件地打开 -p:TreatWarningsAsErrors=true 的方法【参考方案2】:

当您使用 VS Code 打开项目/解决方案时,它会创建一个名为 .vscode 的目录,其中会有一个 tasks.json 文件

(这个目录和文件是在你第一次在 VS Code 中按 F5 时创建的)

看看这个文件,你会发现它的格式类似于以下:


    "version": "2.0.0",
    "tasks": [
        
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "$workspaceFolder/project.csproj"
            ],
            "problemMatcher": "$tsc"
        
    ]

(你可能有更多的任务条目)

您可以通过将字符串添加到其args 数组来为每个任务添加单独的参数。在上面的示例中,我调用 CLI 命令 dotnet 并将参数 build$workspaceFolder/project.csproj 传递给它

【讨论】:

这对于设置dotnet 命令的选项很有用,但我不明白如何使用这些设置编译器标志。事实上,在控制台中输入dotnet build --help 将打印所有选项的列表,并且与编译器标志无关。

以上是关于如何在 VS Code 和/或 .NET Core 中设置编译器选项?的主要内容,如果未能解决你的问题,请参考以下文章

在 VS Code 上的 Asp.net Core 应用程序中集成 Devexpress 工具

使用VS Code从零开始开发调试.NET Core 1.0

使用VS Code开发ASP.NET Core 应用程序

NET Core & VS Code 之路 Web API

VS Code开发调试ASP.NET Core 1.0

dotnet watch+vs code提升asp.net core开发效率