【发布时间】:2019-06-19 23:04:29
【问题描述】:
我正在尝试为通过 .NET Core 编写的 C# 库项目设置 -checked 编译器选项,使用 VS Code 作为 IDE。我该怎么做?
【问题讨论】:
标签: c# .net-core visual-studio-code compiler-options
我正在尝试为通过 .NET Core 编写的 C# 库项目设置 -checked 编译器选项,使用 VS Code 作为 IDE。我该怎么做?
【问题讨论】:
标签: c# .net-core visual-studio-code compiler-options
大多数(全部?)编译器选项都有相应的构建参数。您可以在要添加的参数之前使用-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 的方法
当您使用 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 将打印所有选项的列表,并且与编译器标志无关。