2013-03-01 19 views
6

Ho un problema nel mio progetto in cui ho PCL per .Net 4.5, Windows Phone 8, WinRT, MonoTouch e MonoDroid, quando provo a creare progetti MonoDroid o MonoTouch che hanno riferimento a quello PCL gli errori sono seguenti:Problemi di riferimento dell'assemblaggio della libreria di classi portatili in MonoDroid e MonoTouch

* Errore 1 Il tipo 'System.Object' è definito in un assembly che non è referenziato. È necessario aggiungere un riferimento all'assembly 'System.Runtime, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'.

Errore 2 Il tipo "System.Enum" è definito in un assembly non di riferimento. È necessario aggiungere un riferimento all'assembly 'System.Runtime, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'.

ho fatto suggested comando (sn -Vr *, b03f5f7f11d50a3a), ma non ha aiutato. Sto usando il seguente profilo:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile78 

risposta

3

Se si imposta la compatibilità da .NET 4.5 a .NET 4.0.3, funzionerà.

+0

Quale profilo portatile hai utilizzato? – user2087302

+0

Sto usando Profile131. (.NET> = 4.0.3, Silverlight> = 4, Windows Phone> = 7.5, App Store Windows, XBox) e funziona bene con Xamarin.Android, Xamarin.iOS) – dna

1

Quando ho riscontrato errori simili nel profilo 104, quindi ho creato gruppi di sistema fasulli come System.Windows.dll e System.Net.dll che inoltrano le classi in questione. Ho ritardato la firma di queste false assemblee: fortunatamente MonoDroid e MonoTouch non sembrano controllare troppo attentamente questi acquisti di ritardo.

Gli esempi di questi sono a: https://github.com/slodge/MvvmCross/tree/v3/PortableSupport

direi che si possa fare la stessa cosa con 2 assemblee System.Runtime legati contro MonoDroid e MonoTouch e tipo-forwarding System.Object e System.Enum.

Speriamo che il supporto PCL di Xamarin sarà presto disponibile e includerà la versione ufficiale per questi gruppi di shim.

+0

Ho provato a utilizzare lo shim System.Runtime da Daniel's Progetto AsyncFacade ma non ha aiutato. Ho anche provato a cambiare versioni dalla 1.0.0.0 alla 4.0.0.0. –

+1

Tweet anche da @DavKean inviato - "Avete provato quelli in C: \ Programmi (x86) \ Assiemi di riferimento \ Microsoft \ Framework \ .NETFramework \ v4.5 \ Facades?" – Stuart

+0

Proverò ora. Ho già ritirato le mie modifiche, quindi ho bisogno di alcuni minuti. –

Problemi correlati