错误 CS0104:“Guid”是“System.Guid”和“System.Guid”之间的不明确引用

Bou*_*uke 8 c# azure-devops azure-pipelines-build-task azure-pipelines

在我的一个项目中,我启用了 ImplicitUsings (C# 10) 功能。该项目是一个多目标 .NET 4.8 Framework 和 .NET 6 的 Sdk 项目。截至昨天,我的构建在 Azure DevOps 上开始失败,并出现以下错误:

错误 CS0104:“Guid”是“System.Guid”和“System.Guid”之间的不明确引用

即使是先前已知良好的提交(前天)的构建现在也失败了。管道没有改变。检查代理的图像会产生相同的版本 (20220207.1)。该问题不会在最新的 Visual Studio 2022 (17.1) 上本地重现。

该问题出现在包含 的文件中using System,例如 EF Core 迁移文件。我可能可以通过删除这些“未使用的”使用来解决问题,但是每当创建新的迁移时,问题就会再次出现。生成的 usings( obj\Debug\net48\Project.GlobalUsings.g.cs) 声明以下 using global using global::System;。在其他文件中使用Guid不会产生此错误。

更新。传奇还在继续。现在,我在引用其他 .NET Standard 2 项目的 .NET 6 项目上也遇到构建失败问题。该错误存在于生成的源文件(DragonFruit)中,其中包含行using System.Threading.Tasks. 在本地构建良好,但在 Azure DevOps 上失败并出现以下错误:

D:\ a \ 1 \ s \ XXX \ obj \ Debug \ net6.0 \ XXX.g.cs(8,31):错误CS0104:“任务<>”是“System.Threading.Tasks”之间的不明确引用。任务”和“System.Threading.Tasks.Task”[D:\a\1\s\Source\XXX.csproj]

是什么可以改变这些使用现在导致构建失败的情况?如何在不手动更新迁移的情况下解决此警告?

Bou*_*uke 1

发布在声纳社区

\n
\n

对于那些不关注 Roslyn bug #60259的人来说,仅供参考,Microsoft 已发现编译器中的一个问题,该问题可能会导致在某些多线程场景中观察到的行为。

\n

更新:...该问题已得到解决。该修复当前链接到 v17.3 版本,即尚不可用。

\n
\n

因此 Visual Studio 17.3(和相关工具)将包含对此的修复。

\n

更新:自从更新到 17.3 以来,我再也没有看到过这个错误。

\n