.NET Core 中的重复错误消息 - 错误 CS0116
Duplicate error messages in .NET Core - error CS0116
重现步骤
dotnet new console
(introduce a bug in Program.cs)
dotnet restore
dotnet build
典型的输出是:
Microsoft (R) Build Engine version 15.1.548.43366 Copyright (C) Microsoft Corporation. All rights reserved.
Program.cs(5,5): error CS0116: A namespace cannot directly contain members such as fields or methods [/Users/xxx/Documents/myproj/myproj.csproj]
Build FAILED.
Program.cs(5,5): error CS0116: A namespace cannot directly contain members such as fields or methods [/Users/xxx/Documents/myproj/myproj.csproj]
0 Warning(s)
1 Error(s)
Time Elapsed 00:00:01.77
可以看到错误CS0116报了两次
有没有办法避免重复报错?
您可以创建自己的 MSBuild 记录器,而不是使用默认的控制台记录器。 Build loggers.
里面有很好的说明
基本上,您可以制作自己的记录器来捕获所有数据,然后在最后发出一个简单的摘要。
dotnet build /noconsolelogger /logger:YourCustomLogger.dll
第二个错误是控制台记录器摘要的一部分。这可以通过将 /clp:NoSummary
传递给 msbuild 来禁用。但是,当它是 dotnet build
的第一个 MSBuild 参数时,当前 CLI 中存在错误。在它之前添加任何其他 MSBuild 命令以使其工作。既然你想减少冗长,让我们只使用 /nologo
作为解决方法:
dotnet build -c Release /nologo /clp:NoSummary
但是,如果您直接使用 MSBuild,效果会很好:
dotnet msbuild /clp:NoSummary /p:Configuration=Release
在即将发布的 2.0.0 版本中,CLI 始终覆盖 dotnet build
的摘要参数,因此您必须改用 dotnet msbuild
(我在那个)。
重现步骤
dotnet new console
(introduce a bug in Program.cs)
dotnet restore
dotnet build
典型的输出是:
Microsoft (R) Build Engine version 15.1.548.43366 Copyright (C) Microsoft Corporation. All rights reserved.
Program.cs(5,5): error CS0116: A namespace cannot directly contain members such as fields or methods [/Users/xxx/Documents/myproj/myproj.csproj]
Build FAILED.
Program.cs(5,5): error CS0116: A namespace cannot directly contain members such as fields or methods [/Users/xxx/Documents/myproj/myproj.csproj]
0 Warning(s)
1 Error(s)
Time Elapsed 00:00:01.77
可以看到错误CS0116报了两次
有没有办法避免重复报错?
您可以创建自己的 MSBuild 记录器,而不是使用默认的控制台记录器。 Build loggers.
里面有很好的说明基本上,您可以制作自己的记录器来捕获所有数据,然后在最后发出一个简单的摘要。
dotnet build /noconsolelogger /logger:YourCustomLogger.dll
第二个错误是控制台记录器摘要的一部分。这可以通过将 /clp:NoSummary
传递给 msbuild 来禁用。但是,当它是 dotnet build
的第一个 MSBuild 参数时,当前 CLI 中存在错误。在它之前添加任何其他 MSBuild 命令以使其工作。既然你想减少冗长,让我们只使用 /nologo
作为解决方法:
dotnet build -c Release /nologo /clp:NoSummary
但是,如果您直接使用 MSBuild,效果会很好:
dotnet msbuild /clp:NoSummary /p:Configuration=Release
在即将发布的 2.0.0 版本中,CLI 始终覆盖 dotnet build
的摘要参数,因此您必须改用 dotnet msbuild
(我在那个)。