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

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

【问题讨论】:

    标签: c# .net-core visual-studio-code compiler-options


    【解决方案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 将打印所有选项的列表,并且与编译器标志无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 2018-06-14
    • 1970-01-01
    • 2019-10-20
    • 2020-12-01
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多