在vsts(Windows托管计算机)上构建时,出现以下错误:
运算符'=='不能应用于操作数'default'
但是,在我的项目中,我有:
<PropertyGroup>
<LangVersion>7.1</LangVersion>
</PropertyGroup>
此外,它确实在我的机器上构建(在“调试和发布”模式下)。
更新
该错误最初是在我遇到以下情况时出现的:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<LangVersion>7.1</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<LangVersion>7.1</LangVersion>
</PropertyGroup>
请注意,这是一个库,我会进行多目标(netstandard2.0;xamarinios10
),但我不明白为什么这很重要。
UPDATE2
我尝试过
<PropertyGroup>
<LangVersion>7.1</LangVersion>
</PropertyGroup>
查看日志,我看到了:
/reference:/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mono/Xamarin.iOS/Facades/System.Xml.Xsl.Primitives.dll /debug- /debug:portable /filealign:512 /nologo /optimize+ /out:obj/Release/xamarinios10/MyApp.ViewModels.dll /target:library /warnaserror- /utf8output /deterministic+ /langversion:latest /analyzer:/Users/vsts/.nuget/packages/uno.ui/1.31.0-dev.8/analyzers/Uno.Analyzers.dll MyViewModelA.cs MyViewModelB.cs... Parameter.cs ReactiveGroup.cs "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/Xamarin.iOS,Version=v1.0.AssemblyAttributes.cs" obj/Release/xamarinios10/MyApp.ViewModels.AssemblyInfo.cs /warnaserror+:NU1605
2018-06-27T20:11:28.5184750Z MyViewModelA.cs(105,89): error CS8310: Operator '==' cannot be applied to operand 'default' [/Users/vsts/agent/2.134.2/work/1/s/MyApp.ViewModels/MyApp.ViewModels.csproj]
因此,我认为这可能不是构建错误,而是某种Uno分析器错误。
侧面说明:奇怪的是,在我升级软件包时,日志中提到uno.ui/1.31.0-dev.8
(请参见下文)。好像有一些缓存涉及,我不知道如何。
<PackageReference Include="Uno.UI" Version="1.31.0-dev.79" />
UPDATE3
我无法在此处复制完整日志,但在此处无法生成项目的csc
命令:
/Library/Frameworks/Mono.framework/Versions/5.8.1/lib/mono/4.5/csc.exe /noconfig /unsafe- /checked- /nowarn:1701,1702,1705 /langversion:latest /nostdlib+ /errorreport:prompt /warn:4 /define:__IOS__;__MOBILE__;__UNIFIED__;TRACE;RELEASE;XAMARINIOS1_0
UPDATE4
感谢@ JeromeLaban,他为我提供了有关Mono 5.8.0的link,因为它表明Mono版本仅与C#7.0兼容。
但是,MacO队列的specs表示已安装Mono 5.10,并且该版本最高为C#7.2。 因此,下一个问题(我写了一个专门的question)是如何指定要使用的单声道版本。
答案 0 :(得分:0)
我在托管的vsts MacOs队列上运行的xamarinios vsts task运行mono 5.8.0(即使mono 5.10.0上已将specs安装在该队列上)。 5.8.0版与C#7.0兼容,因此它无法运行C#7.1代码。