6

Utilizzo librerie di classi portatili (PCL) in Xamarin Studio su OS X. Dispongo di due librerie PCL destinate a .NET 4.5, Windows Phone 8, App Store di Windows, Xamarin.iOS, e Xamarin.Android. Faccio riferimento a queste due librerie nei miei progetti di test per iOS, Android e Unità. In 3 zone Sto ottenendo il seguente errore:Libreria di classi portatili System.Object errore

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

Il codice è semplice:

MyClass myClass = new MyClass(); 

L'errore si verifica una volta in ciascuno dei progetti che fanno riferimento i PCLS. Nessuno di loro è della stessa classe. Sono nuovo di PCL. Ho provato a rimuovere Windows Phone 8 (come l'ho aggiunto l'ultimo minuto) e tuttavia il problema non scompare. Qualsiasi aiuto sarebbe appreso!

Grazie!

Aggiornamento:

Quindi, questo avviene con il primo campo dichiarata nella classe (dove la classe è dal progetto PCL).

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

Un altro aspetto strano è che ci sono più di 50 le classi che utilizzano queste classi, e l'errore è presente solo in tre classi.

+0

questo è il profilo 78, giusto? –

+0

Sì, è il profilo 78. – JamWils

risposta

5

Mi sono imbattuto in questo stesso identico problema e ho lo stesso setup di te. Un suggerimento menzionato in un commento (di Stuart, che a sua volta ha citato un tweet di @DavKean) sulla domanda this lo ha risolto per me.

dovete:

  • accesso una macchina Windows (io ho usato un Windows 8)
  • afferrare C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.dll
  • copiarlo sul Mac
  • aggiungere un riferimento a questo dll da ciascuno di i tuoi progetti iOS e Droid
+0

Che ha risolto l'errore. Tuttavia, questo non è sicuramente il modo in cui dovrebbe essere risolto. Che fa sorgere una domanda. È System.Runtime.dll che Mono (Xamarin) usa la propria implementazione? Ho presentato un bug per questo, ecco il link se qualcuno è curioso. Grazie per l'aiuto. https://bugzilla.xamarin.com/show_bug.cgi?id=13400 – JamWils

+0

Sto avendo problemi identici - ma usando Monotouch per VS. Quando si aggiunge il System.Runtime.dll VS non genera più un errore - ma quando si genera un errore si lancia ancora nella console. Avete provato questo su Windows? – LewisBenge

1

Quale versione di Xamarin.Android e Xamarin.iOS stai utilizzando? È necessario utilizzare Xamarin.Android 4.7.x alphas per il supporto PCL o la prossima versione 4.8. (Ditto per Xamarin.iOS: hai bisogno di una versione futura in attesa per il supporto PCL, o usa il canale alfa.)

+0

Ho appena aggiornato sul canale beta ieri (20 luglio 2013) su Xamarin.Android 4.8 e Xamarin.iOS 6.3.8. Ho avuto l'impressione che i PCL fossero supportati in questa versione. Devo passare al canale Alpha? – JamWils

+0

AFAIK, il supporto PCL è attualmente disponibile solo nel canale Alpha –

+0

@jonp Sono ancora in esecuzione in questo problema sul canale alfa –