2015-07-08 13 views
10

Otrzymuję ten błąd podczas budowania mojego rozwiązania Xamarin dla systemu iOS.
Mam włączone tylko zestawy SDK link.
Dziwne jest to, że działa dobrze, gdy buduję go dla symulatora, ale kiedy buduję dla prawdziwego urządzenia, daje to ten błąd.Xamarin: Błąd MT2002: Nie udało się rozwiązać "System.Void System.Security.Cryptography.SHA1Cng ::. Ctor()"

MTOUCH: error MT2002: Failed to resolve "System.Void 
System.Security.Cryptography.SHA1Cng::.ctor()" reference from 
"System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 

Nie w moim kodzie mam odniesienie do System.Security.Cryptography.

To działa, gdy wyłączyć zespoły łączące lub umożliwiają powiązanie wszystkie zespoły, ale łącząc wszystko spowoduje Unity IoC na niepowodzenie i wyłączyć łącząc wszystko razem powoduje większy rozmiar pliku aplikacji.

Buduję dla systemu docelowego 7.1 (bez różnicy, gdy to zmienię) dla .NET w wersji 4.5.2 i wszystkie aktualizacje dla Xamarin są zainstalowane.

Aktualizacja:
Mogę potwierdzić, że mój projekt iOS odnosi się do wersji 2.0.5.0 System.Core
zobacz zrzut ekranu poniżej.
Mam jednak projekt PCL, do którego się odwołuje. Czy to w jakiś sposób może spowodować problem?

enter image description here

UPDATE: Okazuje się, że jest tam biblioteka, że ​​byłem przedstawieniu, HashLib, co uważałem, że było PCL ale faktycznie nie jest.
W HashLib było wywołanie czegoś w System.Core, które spowodowało, że linker się nie powiódł.
Teraz wypakowałem potrzebną funkcjonalność z HashLib i skompilowałem ją do osobnego projektu PCL, co naprawiło problem z linkerem.

Odpowiedz

7

pan jakoś przedstawieniu wersji komputerowej System.Core:

"System.Core, Version = 4.0.0.0, Culture = neutral, TokenKluczaPublicznego = b77a5c561934e089"

Xamarin Wersja .iOS ma Version=2.0.5.0.

Pamiętaj, że możesz nie odwoływać się do tej wersji System.Core, możesz ją pobrać pośrednio (jeśli odwołujesz się do zestawu, który odwołuje się do System.Core).

Sprawdź, czy wszystkie twoje referencje używają wersji 2.0.5.0 System.Core (Wierzę, że możesz użyć do tego Reflektora).

+0

Zaktualizowałem moje pytanie z dodatkowymi informacjami. Odwołuję się do 2.0.5.0 –

+0

Czy możesz dodać '-v -v -v -v' do dodatkowych opcji mtouch w opcjach budowania iOS projektu, czyścić i przebudowywać oraz tworzyć dziennik kompilacji? –

+0

Tutaj jest wyjście: https://gist.github.com/DotTech/4bc7d139b3d5cad0a7de Dzięki za wysiłek! –

Powiązane problemy