C# 如何在VS代码和/或.NET内核中设置编译器选项?
我正试图使用VS代码作为IDE,为在.NET内核上编写的C#library项目设置-checked编译器选项。如何执行此操作?当您使用VS代码打开项目/解决方案时,它将创建一个名为C# 如何在VS代码和/或.NET内核中设置编译器选项?,c#,.net-core,visual-studio-code,compiler-options,C#,.net Core,Visual Studio Code,Compiler Options,我正试图使用VS代码作为IDE,为在.NET内核上编写的C#library项目设置-checked编译器选项。如何执行此操作?当您使用VS代码打开项目/解决方案时,它将创建一个名为.vscode的目录,其中将有一个tasks.json文件 (此目录和文件是在VS代码中第一次按F5时创建的) 查看此文件,您会发现其格式与以下类似: { "version": "2.0.0", "tasks": [ { "label": "build",
.vscode
的目录,其中将有一个tasks.json
文件
(此目录和文件是在VS代码中第一次按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
大多数(所有?)编译器选项都有相应的build参数。在要添加的参数之前,可以使用-p:
(或/p:
)标志将生成参数传递给dotnet build
。然后使用name=value
结构作为参数名和相应的值
从的文档中,对应的生成参数为
下面是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>
这对于设置
dotnet
命令的选项很有用,但我不知道如何使用这些选项设置编译器标志。事实上,在控制台中键入dotnet build--help
将打印所有选项的列表,并且没有与编译器标志相关的内容。这花了一些时间才找到,但这也是有条件地打开-p:TreatWarningsAsErrors=true
的方法