2017-05-02 4 views
0

Impossible d'installer le package 'System.Security.SecureString' dans mon PCL.Impossible d'installer le package 'System.Security.SecureString'

J'ai essayé quelques-unes des solutions en ligne telles que l'ajout project.json à la PCL, mais rien ne fonctionne

Voici l'erreur journal

Toute tentative de rassembler les informations de dépendance pour le paquet « System.Security .SecureString.4.3.0' par rapport au projet 'TestProj', ciblant » .NETPortable, version = v4.5, profil = Profile259'
GET https://api.nuget.org/v3/registration1-gz/system.security.securestring/index.json OK https://api.nuget.org/v3/registration1-gz/system.security.securestring/index.json 144ms Nombre total de résultats recueillis: 15 dépendance de collecte d'informations a 496.15 ms Résumé du temps nécessaire pour recueillir dépendances par source: https://api.nuget.org/v3/index.json - 172.87 ms tentative de résoudre les dépendances pour le paquet « System.Security.SecureString.4.3.0 'avec DependencyBehavior' Lowest ' La résolution des informations de dépendance a duré 0 ms Résoudre les actions à installer le package' System.Security.SecureString.4.3.0 'Résoudre les actions pour installer le package' System.Security.SecureString.4.3.0 'Récupérer le package 'System.Security.SecureString 4.3.0' de 'nuget.org'. Pour , ajouter le paquet 'System.Security.SecureString.4.3.0' au projet 'TestProj' qui cible 'portable45-net45 + win8 + wp8 + wpa81'. L'installation a échoué. Rétablissement ... Le paquet 'System.Security.SecureString.4.3.0' n'existe pas dans le projet 'TestProj' Package 'System.Security.SecureString.4.3.0' n'existe pas dans le dossier '/ Users/durai/Documents/BTFleet/BT Fleet/_git/DailyCheckApp/packages ' L'exécution des actions de pépin a pris 136,1 ms Impossible d'installer le paquet ' System.Security.SecureString 4.3.0 '. Vous essayez d'installer ce package dans un projet qui cible '.NETPortable, Version = v4.5, Profile = Profile259', mais le package ne contient pas de références d'assembly ou de fichiers de contenu compatibles avec ce cadre. Pour plus d'informations, contactez l'auteur du package .

Toute aide pour l'installation réussie du paquet est appréciée!

+1

Si vous mettez à jour votre PCL vers une bibliothèque standard dotnet, il devrait être installé correctement tant que son> = 1.3. En outre, il inclurait une cale PCL pour supporter les bibliothèques PCL existantes. –

+0

@JonDouglas - Si je convertis PCL en une bibliothèque standard dotnet, cela pourrait rompre l'intégration faiblement couplée basée sur MVVMlight? En gros, cette PCL a des viewmodels qui sont utilisés par iOS, Android et Windows. –

+0

Assez drôle, une question très similaire a été posée il y a quelques heures ici sur StackOverflow. J'ai donné une réponse complète [ici] (http://stackoverflow.com/a/43752282/650012) sur la façon dont vous pourriez résoudre ce problème, coller avec PCL. S'il vous plaît laissez-moi savoir si mon approche fonctionne pour vous. –

Répondre

0

L'API System.Security de .NET n'est pas compatible PCL et ne peut donc pas être ajoutée au projet PCL.

Mais, il peut être ajouté dans les autres projets de la solution Xamarin - vous pouvez l'ajouter aux projets natifs comme les projets Android et iOS. Et comme vous pouvez l'ajouter ici, vous pouvez créer les implémentations sur ces projets et appeler ces implémentations via le service de dépendance dans votre PCL.

Les étapes de haut niveau sont:

1.) Créer une interface dans votre PCL.

2.) Créez une méthode dans cette interface qui sera implémentée dans les projets Android ou iOS.

3.) Ajoutez le package Nuget pour System.Security.SecureString à votre projet natif.

4.Créez une classe dans votre code natif qui implémentera cette interface à partir du PCL.

5.) Appelez ce code à partir de votre PCL via DependencyService.

Pour un exemple sur la façon de procéder, voir ceci link.

Il est long et fastidieux mais ça vaut le coup.

+0

Existe-t-il un autre moyen de résoudre ce problème? cela pourrait être en contradiction avec la nature faiblement couplée de PCL et j'ai déjà écrit des tests unitaires pour des modèles de vue en PCL (j'utilise MVVMlight) et je ne serais peut-être pas capable de le faire de façon indépendante. –

+0

Ah, j'ai un bloqueur ... Je n'utilise pas Xamarin Forms donc ... Injection de dépendance impossible –

+0

Sur votre première question, cela est nécessaire car certains processus ne peuvent être effectués que de façon native et donc un service de dépendance comme celui-ci est absolument nécessaire. Sur le deuxième commentaire, je suis désolé car je n'ai aucune idée (encore) comment mettre en œuvre cela. – ADimaano