2016-04-16 10 views
2

Wie würde ich dies in Xamarin lösen:Xamarin konnte system.security.cryptography nicht auflösen?

fehlgeschlagen System.Security.Cryptography.SHA256CryptoServiceProvider Referenz von System.Core, Version 4.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089" (MT2002 lösen

)

ich finde große Schwierigkeiten mit diesem Problem, da es aus dem Nichts aufgetaucht ist, wenn meine Lösung auf einem realen Gerät anstatt auf einem simulator.I sehr jede mögliche Hilfe schätzen würde laufen :)

+3

Mögliches Duplikat von [Xamarin: Fehler beim Auflösen der Assembly: System.Security] (http://StackOverflow.com/Questions/22254480/Xamarin-Failed-To-Resolve-Assembly-System-Security) – Jason

Antwort

0

Fehler behoben! Ich musste lediglich die Build-Einstellung auf "Nicht verknüpfen" ändern.

+0

Das ist nicht korrekt beheben und es wird Ihnen andere Probleme verursachen. – poupou

3

Xamarin.iOS Schiffe System.Core, Version 2.1.0, ... (auch wenn es neuere API enthält, was mit 2.1/Silverlight geliefert).

Der obige Fehler erwähnt System.Core, Version 4.0.0, ... und das ist keine Assembly, die mit Xamarin.iOS geliefert wird, noch ist es Teil eines PCL-Profils, das unterstützt wird.

Dies geschieht in der Regel, weil einige Ihrer Binärdateien gegen die Desktop kompiliert werden MS .NET Framework. Dies kann auch Typ-/Memberverweise auf Dinge enthalten, die in der von Xamarin gelieferten Version nicht vorhanden sind.

Die Lösung besteht darin, solche Binärdateien gegen das SDK neu zu erstellen, das mit Xamarin.iOS oder gegen eines der unterstützten PCL-Profile geliefert wird.

Beachten Sie, dass das Festlegen des Linkers auf "Nicht verknüpfen" nur den Fehler (zur Build-Zeit) verbirgt und Sie mit Fehlern, die zu Abstürzen führen können, zur Laufzeit (in der Regel ein schlechter Kompromiss) erhalten.

+0

System.Core, Version 4.0.0 erscheint in meinem Hauptprojekt, wenn dies etwas mit dem Problem zu tun hat. –

+0

Also, um die Binärdatei neu zu erstellen, müsste ich einen Verweis auf System.Core, Version 2.1.0 in meinem Kernprojekt hinzufügen? –

+0

Wenn Sie Ihren Code für das Xamarin SDK neu erstellen, verweisen Sie auf die _right_ (2.1) System.Core-Assembly. Wenn Sie es für eine PCL neu erstellen, lesen Sie in der Dokumentation nach, um ein kompatibles Profil auszuwählen. – poupou