.NET Standard 2.0 Xamarin.iOS 项目 VSTS 构建问题

.NET Standard 2.0 Xamarin.iOS project VSTS build issue

目前我正在尝试升级 Xamarin.Forms 项目以使用 .NET Standard 2.0。这对 Android 很好,但我被 iOS 版本卡住了。为了构建 iOS,我们使用 On-Primise MacMini 作为构建代理 int VSTS。现在我在构建解决方案时遇到以下错误。

=================================

..更多类似下面的错误...

2017-11-21T11:39:43.8920830Z ViewModels/DashboardViewModel.cs(66,35):错误 CS0012:类型 'Object' 在未引用的程序集中定义。您必须添加对程序集 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' 的引用。 [/Users/Admin/BuildAgent/_work/3/s/xxx.App/xxx.Core.csproj] 2017-11-21T11:39:43.9014700Z ViewModels/DashboardViewModel.cs(66,73):错误 CS0012:类型 'Object' 在未引用的程序集中定义。您必须添加对程序集 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' 的引用。 [/Users/Admin/BuildAgent/_work/3/s/xxx.App/xxx.Core.csproj] 2017-11-21T11:39:43.9036150Z ViewModels/DashboardViewModel.cs(66,93):错误 CS0012:类型 'Object' 在未引用的程序集中定义。您必须添加对程序集 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' 的引用。 [/Users/Admin/BuildAgent/_work/3/s/xxx.App/xxx.Core.csproj] 2017-11-21T11:39:43.9053280Z 2017-11-21T11:39:43.9083060Z 6 个警告 2017-11-21T11:39:43.9107960Z 47 个错误 2017-11-21T11:39:43.9116100Z 2017-11-21T11:39:43.9131830Z 已用时间 00:00:59.23 2017-11-21T11:39:43.9327960Z ##[error]Xamarin.iOS 任务因错误错误而失败:/Library/Frameworks/Mono。framework/Versions/Current/Commands/msbuild 因 return 代码而失败:1. 指导有关设置构建定义的信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=760847。 2017-11-21T11:39:43.9575950Z [command]/usr/bin/security delete-keychain /Users/Admin/BuildAgent/_work/3/s/_xamariniostasktmp.keychain 2017-11-21T11:39:44.2658340Z ##[部分]完成:构建 Xamarin.iOS 解决方案 xxx.sln

=================================

此输出来自以下构建定义:

现在我已经在互联网上搜索并找到了可能的解决方案:

但是所有这些都不足以解决问题。现在我不是使用 Mac 的专家。其实在这个问题之前我从来没有碰过一个......所以我可能在这里做错了......

但我已经能够在 MacMini 上获得有关所有产品的一些版本信息:

========= Visual Studio =========

Visual Studio Mac 社区 2017 版本 7.2.2(构建 11) 安装 UUID:b43353ef-651c-468b-8b7d-3f1714586419 运行: 单声道 5.4.1.6 (2017-06/1f4613aa1ac)(64 位) GTK+ 2.24.23(罗利主题)

包版本:504010006

NuGet 版本:4.3.1.4445

.NET核心 运行时间:/usr/local/share/dotnet/dotnet 运行时版本:2.0.3 SDK: /usr/local/share/dotnet/sdk/2.0.3/SDKs 开发工具包版本:2.0.3 MSBuild SDK:/Library/Frameworks/Mono.framework/Versions/5.4.1/lib/mono/msbuild/15.0/bin/Sdks

Xamarin.Profiler 版本:1.5.6 位置:/Applications/Xamarin 探查器。app/Contents/MacOS/Xamarin 探查器

Xamarin.Android 未安装

Xamarin 检查器 未安装

苹果开发者工具 Xcode 9.1 (13532) 建造 9B55

Xamarin.iOS 版本:11.3.0.47(Visual Studio 社区) 哈希值:51128b8c 分支:xcode9.1 建造日期:2017-10-31 22:42:13-0400

Xamarin.Mac Xamarin.Mac 未安装。找不到 /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/Version.

构建信息 版本号:702020011 Git 修订版:b604c37c5a4a2f0919b45ffbe2aaad9fe040af31 建造日期:2017-11-01 08:31:43-04 Xamarin 插件:d57dc14cbd4eb166ee62bab585965ab78d3650bc 构建通道:monodevelop-lion-d15-4

操作系统 Mac OS X 10.12.6 Darwin 16.7.0 达尔文内核版本 16.7.0 10 月 4 日星期三 00:17:00 PDT 2017 root:xnu-3789.71.6~1/RELEASE_X86_64 x86_64

============= XCode =============

XCode 对于 Mac 版本 9.1 (9B55)

=============单声道==============

Mono JIT 编译器版本 5.4.1.6(2017-06/1f4613aa1ac,10 月 18 日星期三 09:31:57 EDT 2017) 版权所有 (C) 2002-2014 Novell, Inc、Xamarin Inc 和贡献者。 www.mono-project.com TLS:正常 SIGSEGV:altstack 通知:kqueue 架构:amd64 已禁用:none 杂项:软调试 LLVM:是的(3.6.0svn-mono-master/8b1520c8aae) GC:sgen(默认并发)

=========.NET Core SDK =========

.NET核心SDK 版本 2.0.3

=================================

该项目可以在 MacMini 本身上构建。只有 VSTS 任务一直失败...

有人有什么想法可以帮助我解决我的问题吗?

亲切的问候, 跳

在我们手动编辑 .NET Standard 2.0 项目文件 (*.csproj) 并手动添加 PackageReference 后,一切开始正常运行。

<ItemGroup>
  ...
  <PackageReference Include="NETStandard.Library" version="2.0.0" />
  ...
</ItemGroup>