6

Używam przenośnych bibliotek klas (PCL) w Xamarin Studio na OS X. Mam dwie biblioteki PCL, które są ukierunkowane na .NET 4.5, Windows Phone 8, aplikacje Windows Store, Xamarin.iOS, i Xamarin.Android. Te dwie biblioteki odwołuję się do projektów testów na iOS, Androida i testów jednostkowych. W 3 obszarach otrzymuję następujący błąd:Przenośna biblioteka klas System.Object error

The type 'System.Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Kod jest prosta:

MyClass myClass = new MyClass(); 

Błąd występuje raz w każdym z projektów, które odwołują się PCLS. Żadna z nich nie jest tą samą klasą. Jestem nowy w PCL. Próbowałem usunąć system Windows Phone 8 (jak dodałem go w ostatniej chwili), ale problem nie znika. Każda pomoc będzie odpowiednia!

Dzięki!

Aktualizacja:

Więc ta występuje z pierwszego pola zadeklarowanej w klasie (gdzie klasa jest z projektu PCL).

int a = 0; 
MyPCLClass _myPCLClass = new MyPCLClass(); //This is where the error appears 

Innym aspektem jest to dziwne, że istnieje ponad 50 klas z wykorzystaniem tych klas, a błąd pojawia się tylko w trzech klasach.

+0

to jest profil 78, prawda? –

+0

Tak, to jest profil 78. – JamWils

Odpowiedz

5

Po prostu wpadłem na ten sam problem i mam taką samą konfigurację jak ty. Wskazówka wymieniona w komentarzu (przez Stuarta, który z kolei wspomniał o tweecie autorstwa @DavKeana) na pytanie this rozwiązało to dla mnie.

trzeba:

  • dostępu do komputera z systemem Windows (użyłem Windows 8)
  • grab C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.dll
  • skopiować go do komputera Mac
  • dodać odniesienie do niniejszej dll z każdego twoje projekty iOS i Droid
+0

Naprawiono błąd. Jednak to zdecydowanie nie jest sposób, w jaki należy to naprawić. Które wywołuje pytanie. Czy plik System.Runtime.dll, który Mono (Xamarin) korzysta z własnej implementacji? Złożyłem na to błąd, tutaj jest link, jeśli ktoś jest ciekawy. Dzięki za pomoc. https://bugzilla.xamarin.com/show_bug.cgi?id=13400 – JamWils

+0

Mam identyczne problemy - ale przy użyciu Monotouch dla VS. Podczas dodawania VS System.Runtime.dll nie powoduje już błąd - ale podczas budowania błąd jest nadal wyrzucać w konsoli. Czy próbowałeś tego w ogóle na Windowsie? – LewisBenge

1

Którą wersję Xamarin.Android i Xamarin.iOS używasz? Musisz używać Xallein.Android 4.7.x alphas do obsługi PCL lub do nadchodzącego wydania 4.8. (Ditto for Xamarin.iOS: potrzebujesz przyszłej wersji do obsługi PCL lub użyj kanału alfa.)

+0

Właśnie zaktualizowałem na kanale beta wczoraj (20 lipca 2013 r.) Do Xamarin.Android 4.8 i Xamarin.iOS 6.3.8. Miałem wrażenie, że PCL były obsługiwane w tej wersji. Czy muszę przejść na kanał alfa? – JamWils

+0

AFAIK, obsługa PCL jest obecnie dostępna tylko w kanale Alpha. –

+0

@ jjp Nadal borykam się z tym problemem na kanale alfa –

Powiązane problemy