【问题标题】:Failed to load Xamarin Forms project with .NET Standard 2.0 Lib in Rider无法在 Rider 中使用 .NET Standard 2.0 Lib 加载 Xamarin Forms 项目
【发布时间】:2018-02-05 17:36:51
【问题描述】:

TL;DR; Rider 是否支持带有 .NET Standard 库 2.0 的 Xamarin Forms 项目?

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

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

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

然后,我使用 PCL 在 Mac 上的 VS 中创建了一个新的空白项目,Rider 毫无怨言地打开了它。所以我的问题:
Rider 是否支持带有 .NET Standard 库 2.0 的 Xamarin Forms 项目?

  • 如果它们受支持:我应该怎么做才能使其正常工作而不中断对 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 或更改工具集
  • 无法从程序集 /Users/kay/.nuget/packages/xamarin.forms/2.5.0.122203/build/netstandard1.0/Xamarin.Forms 加载“Xamarin.Forms.Build.Tasks.GetTasksAbi”任务.Build.Tasks.dll。无法加载文件或程序集“Microsoft.Build.Utilities.v4.0,版本=4.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a”。系统找不到指定的文件。

我想我可以开始手动修复路径等,但我害怕做一些我没有深入了解的事情。我曾经使用 Unity 游戏引擎多年,但我是 Xamarin 开发的新手。

【问题讨论】:

  • 转到文件 |设置 |构建、执行、部署 |工具集和构建以及从单声道更改 MsBuild。我猜你在那个 msbuild 中安装了所有 Xamarin 目标。
  • 但 Rider 默认使用 .net core msbuild(无目标)用于 .net 标准项目
  • @xtmq:太好了!选择 /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/msbuild/15.0/bin/MSBuild.dll 而不是 /usr/local/share/dotnet/sdk/ 2.0.3/MSBuild.dll 成功了,可以构建项目。起初我尝试在 Android 上部署时出现了一些错误。重启 Rider 后一切正常。请将您的评论放入答案中
  • 不是问题 =) 此外,我们正在实施改进的 MsBuild 自动检测版本以避免将来出现此类问题...将于 2018.1 或 2018.2 发布 =) 请参阅 youtrack.jetbrains.com/issue/RIDER-7112

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    进行此更改后,您必须完全重新启动 Rider,这一点很重要。进行更改后,Rider 将尝试进行重建并失败。让它看起来你的改变没有奏效。但似乎该设置在 Rider 完全重启后才会生效。

    【讨论】:

    • 选择 msbuild v15 解决了这个问题。是不是我们现在不能将 msbuild v16 用于 Xamarin 项目?
    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多