web-dev-qa-db-fra.com

"Impossible de résoudre la référence:` System.Memory` "ou" Impossible de trouver `System.Memory`" après la mise à jour vers Visual Studio 2017 version 15.8 Aperçu

Au cas où cela pourrait aider quelqu'un d'autre, je poserai cette petite question sur un problème pouvant apparaître dans les projets Xamarin.Android et Xamarin.iOS après une mise à jour de Visual Studio 2017 version 15.7 à la version 15.8 Preview.

Exemple d'étapes pour illustrer le problème

  1. Créez un nouveau projet Xamarin.Android ou Xamarin.iOS vierge.
  2. Ajoutez le package NuGet Microsoft.AspNetCore.SignalR.Client.Core version 1.0.0 au projet.
  3. Utilisez un type du package NuGet dans le projet. Par exemple, ajoutez la ligne suivante à une méthode existante:

    var connection = new Microsoft.AspNetCore.SignalR.Client.HubConnectionBuilder().Build();
    
  4. Pour Xamarin.Android, essayez de générer le projet dans la configuration de débogage. Pour Xamarin.iOS, créez et exécutez l'application dans la configuration de débogage sur le simulateur iPhone.

Résultats avec Visual Studio 2017 version 15.7

Les applications Xamarin.Android et Xamarin.iOS sont toutes deux conçues et exécutées sans erreur.

Résultats avec Visual Studio 2017 version 15.8 Preview 4

Pour Xamarin.Android, la construction échoue:

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`.

Pour Xamarin.iOS, l'application est lancée avec succès sur le simulateur, mais la sortie de débogage indique que l'application ne parvient pas à trouver System.Memory lors de son exécution:

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`.

Comment résoudre ces erreurs? En guise de suivi, pourquoi ces erreurs sont-elles apparues après la mise à jour de Visual Studio?

7
Brendan Zagaeski

J'utilise VS Entreprise 2017 Version 15.9.1

Pour résoudre le problème que je rencontre (impossible de résoudre la référence: System.Buffers, référencée par System.Memory. Ajoutez un package NuGet ou une référence d'assembly à System.Buffers, ou supprimez la référence à System.Memory.), Je viens d'installer le package System.Buffers par ceci. commander:

Install-Package System.Buffers -Version 4.5.0

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

1
A. Blaise