当前位置: 首页 > 知识库问答 >
问题:

更新到Visual Studio 2017版本15.8预览后,“无法解析引用:`System.Memory`”或“找不到`System.Memory`”

聂翼
2023-03-14

如果它可能对其他人有所帮助,我会问并回答这个关于Xamarin中可能出现的问题的小问题。从Visual Studio 2017版本15.7更新到版本15.8预览后,Android和Xamarin. iOS项目。

>

  • 创建一个新的空白Xamarin。Android或Xamarin。iOS项目
  • 添加Microsoft。AspNetCore。信号员。客户核心版本1.0。0将包添加到项目中
  • 在项目中使用NuGet包中的类型。例如,将以下行添加到任何现有方法

    var connection = new Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilder().Build();
    

    为了Xamarin。Android,尝试在调试配置中构建项目。为了Xamarin。iOS,在iPhone模拟器的调试配置中构建并运行应用程序。

    两个Xamarin。Android应用程序和Xamarin. iOS应用程序构建和运行没有错误。

    为了Xamarin。Android,构建失败:

    Xamarin.Android.Common.targets(1831,2): error XA2002: Can not resolve reference: `System.Memory`, referenced by `Microsoft.AspNetCore.Connections.Abstractions`. Please add a NuGet package or assembly reference for `System.Memory`, or remove the reference to `Microsoft.AspNetCore.Connections.Abstractions`.
    Xamarin.Android.Common.targets(1831,2): error XA2002: Can not resolve reference: `System.Memory`, referenced by `Microsoft.AspNetCore.SignalR.Client.Core`. Please add a NuGet package or assembly reference for `System.Memory`, or remove the reference to `Microsoft.AspNetCore.SignalR.Client.Core`.
    Xamarin.Android.Common.targets(1831,2): error XA2002: Can not resolve reference: `System.Memory`, referenced by `Microsoft.AspNetCore.SignalR.Common`. Please add a NuGet package or assembly reference for `System.Memory`, or remove the reference to `Microsoft.AspNetCore.SignalR.Common`.
    Xamarin.Android.Common.targets(1831,2): error XA2002: Can not resolve reference: `System.Memory`, referenced by `Microsoft.AspNetCore.SignalR.Protocols.Json`. Please add a NuGet package or assembly reference for `System.Memory`, or remove the reference to `Microsoft.AspNetCore.SignalR.Protocols.Json`.
    Xamarin.Android.Common.targets(1831,2): error XA2002: Can not resolve reference: `System.Memory`, referenced by `Microsoft.Extensions.Primitives`. Please add a NuGet package or assembly reference for `System.Memory`, or remove the reference to `Microsoft.Extensions.Primitives`.
    Xamarin.Android.Common.targets(1831,2): error XA2002: Can not resolve reference: `System.Memory`, referenced by `System.IO.Pipelines`. Please add a NuGet package or assembly reference for `System.Memory`, or remove the reference to `System.IO.Pipelines`.
    

    为了Xamarin。在iOS中,应用程序在模拟器上成功启动,但调试输出显示应用程序无法找到系统。运行时的内存:

    Could not find `System.Memory` referenced by assembly `System.IO.Pipelines, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51`.
    Could not find `System.Memory` referenced by assembly `Microsoft.AspNetCore.SignalR.Client.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`.
    Could not find `System.Memory` referenced by assembly `Microsoft.AspNetCore.SignalR.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`.
    Could not find `System.Memory` referenced by assembly `Microsoft.Extensions.Primitives, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`.
    Could not find `System.Memory` referenced by assembly `Microsoft.AspNetCore.Connections.Abstractions, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`.
    Could not find `System.Memory` referenced by assembly `Microsoft.AspNetCore.SignalR.Protocols.Json, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60`.
    

    如何解决这些错误?作为跟进,为什么在我更新VisualStudio之后会出现这些错误?

  • 共有2个答案

    高溪叠
    2023-03-14

    如何解决这些错误?

    若要解决这些错误,请更新Microsoft。AspNetCore.SignalR.客户。在所有使用它的项目中,将核心Nuget包升级到版本1.0.1或更高。例如:

    >

  • 转到工具

    更新Microsoft.AspNetCore.SignalR.客户。核心到版本1.0.1或更高。

    在微软。AspNetCore.SignalR.客户。核心版本1.0.1,System.内存Nuget依赖是现在)

    作为跟进,为什么在我更新VisualStudio之后会出现这些错误?

    出现这些错误是因为Visual Studio 2017 15.7版和15.8版中的Xamarin SDK版本与系统存在棘手的兼容性关系。内存NuGet包版本。在Visual Studio 2017版本15.7中,Xamarin。Android和Xamarin。iOS使用该NuGet包中类型的内置实现,因此不需要引用NuGet包中的程序集。系统。内存NuGet包版本4.5。因此,0包含Xamarin项目类型的占位符文件以防止冲突。

    但是当前Xamarin SDK版本中的内置实现还没有覆盖Nuget包的全部表面区域。因此,对于Visual Studio 2017版本15.8,Mono团队暂时隐藏了那些内置实现(通过将它们切换到内部并删除System.内存立面组件)。这意味着Xamarin项目现在依赖于Nuget包的实现。和系统。因此,内存Nuget包版本4.5.1不包括Xamarin项目类型的占位符文件。

    还有一件事要记住,Xamarin SDK中的内置实现将在未来的版本中覆盖Nuget包的整个表面区域。内置实现将被取消隐藏,占位符文件将被添加回Nuget包。当这种情况发生时,用户需要再次更新他们的Nuget包。下一个更改将出现在Visual Studio 2017版本15.9或更高版本中。

  • 师成弘
    2023-03-14

    我使用VS Enterprise 2017版本15.9。1.

    要解决我面临的问题(无法解决引用:System.Buffers,由System.Memory引用。请为System.Buffers添加NuGet包或程序集引用,或删除对System.Memory的引用),我只是安装系统。通过此命令对包进行缓冲:

    安装软件包系统。缓冲区-版本4.5。0

    https://www.nuget.org/packages/System.Buffers/

     类似资料:
    • 只有当我更新到1.0.0-rc01时,这才发生在我身上。它说: 找不到以下类:- 我的代码:

    • 我无法理解为什么当我通过的文本符合格式时,我会得到DateTimeParseException错误。下面是导致该问题的代码: 奇怪的是。每当我查询用户一段时间(让我们以00:02:30为例),它就会完全按照我想要的方式运行。但是当我使用我的方法(从文本文件中提取时间)时,它会出现错误: 线程“main”java.time.format.DateTimeParseException中出现异常:无法分

    • 问题内容: 我已经将django项目克隆到Centos 7 vps,并且现在尝试运行它,但是在尝试执行以下操作时出现此错误: 当我检查sqlite的版本时,它是3.7.17,因此我从sqlite网站下载了最新版本,并用旧版本替换了它,现在,当我对其进行版本化时,它给出了: 仍然,当我尝试迁移项目时,会收到与以前完全相同的消息,这意味着未找到较新的版本。我是Linux新手,不胜感激。 问题答案: 要

    • 但当我同步分级时,它会显示以下错误: 错误:(23,0)找不到Gradle DSL方法:“Version Code()”可能的原因: 如何解决这个问题?

    • ***看起来google()和jcenter()没有像预期的那样工作。*** 我从android studio 2.3.3迁移到4.0.1,出现了这个错误。 我的问题是什么????如果你需要更多的信息请告诉我。 谢谢你的回答:)