无法在Rider中加载带有.NET Standard 2.0 Lib的Xamarin Forms项目

时间:2018-02-05 17:36:52

标签: c# xamarin.forms .net-standard rider

TL; DR; Rama支持.NET Standard 2.0的Xamarin Forms项目吗?

我使用空白表单应用程序多平台向导在Visual Studio 2017.3(Windows)中创建了一个小型Xamarin项目。微软最近放弃了在Windows版本的VS中创建PCL的选项,并且仅提供.NET Standard。因此我选择了那个。

现在我想直接使用Rider在Mac上尝试开发,这样我就不必运行Windows VM(我真的很喜欢Resharper,所以我在Mac上绑定了Windows)

当我在Mac OS上的Rider中打开这个项目时,会抛出一堆错误,看起来所有路径都搞砸了。另一方面,在VS for Mac中打开它可以正常工作。

然后我在Mac上的VS中创建了一个新的空白项目,PCL和Rider打开它而没有抱怨。所以我的问题:
Xamarin是否在Rider中支持.NET Standard库2.0的项目?

  • 如果他们受到支持:我应该做些什么才能让它在不打破VS后备的情况下工作?
  • 如果没有:是否有计划在不久的将来支持它?

我的一些错误:

  • 加载失败:导入的项目" /usr/local/share/dotnet/sdk/2.0.3/Xamarin/Android/Xamarin.Android.CSharp.targets"没找到。确认声明中的路径是否正确,以及该文件是否存在于磁盘上。
  • 未找到MSBuild目标:确保已安装此解决方案中的项目所需的所有SDK,或在设置中指定其他MSBuild版本。
  • 未找到Xamarin.Android SDK:Rider无法在此计算机上找到Xamarin SDK。不会加载基于Xamarin的项目。请安装Xamarin SDK或更改工具集
  • " Xamarin.Forms.Build.Tasks.GetTasksAbi"无法从程序集/Users/kay/.nuget/packages/xamarin.forms/2.5.0.122203/build/netstandard1.0/Xamarin.Forms.Build.Tasks.dll加载任务。无法加载文件或程序集' Microsoft.Build.Utilities.v4.0,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。系统找不到指定的文件。

我想我可以手动开始修路等等,但是我害怕做一些我不会深入研究的东西。我曾经使用Unity游戏引擎多年,但我是Xamarin开发的新手。

2 个答案:

答案 0 :(得分:7)

转到文件|设置|构建,执行,部署|工具集和从单声道构建和更改MsBuild。我猜你在msbuild中安装了所有Xamarin目标。

答案 1 :(得分:5)

问题是由Rider选择要使用的错误MSBuild文件引起的。 .NET Core SDK安装了未配置为使用Xamarin SDK的MSBuild版本。

在Rider转到文件>设置>构建,执行部署>工具集和构建>使用MSBuild版本。选择驻留在.NET Core SDK路径中的MSBuild.dll:

enter image description here

在将在MacOS上的Microsoft Visual Studio下appears to be under the Mono.framework

的Windows上

进行此更改后,完全重启Rider非常重要。进行更改后,Rider将尝试进行重建并失败。让它看起来像你的改变不起作用。但看起来,在Rider完全重启之前,该设置才会生效。