2012-07-22 27 views
8

Estoy tratando de compilar un programa que utiliza la biblioteca Newtonsoft.Json.dll con mono comandoNo se pudo cargar el tipo System.Runtime.Versioning.TargetFrameWorkAttribute del conjunto

Compilar

gmcs Program.cs etcetera.cs -r:Newtonsoft.Json.dll -r:Argotic.Core.dll 

Resultado:

Missing method .ctor in assembly Newtonsoft.Json.dll, type System.Runtime.Versioning.TargetFrameworkAttribute 
Can't find custom attr constructor image: Newtonsoft.Json.dll mtoken: 0x0a000053 

Y cuando intenta ejecutar el programa (mono Program.exe) arroja el error:

Unhandled Exception: System.TypeLoadException: Could not load type 'System.Runtime.Versioning.TargetFrameworkAttribute' from assembly 'Newtonsoft.Json'. 

    at my_program.CJSONStuff.serialize (System.Collections.Generic.Dictionary`2 obj) [0x00000] in <filename unknown>:0 

    at my_program.TheObjDB.getAllSerialized() [0x00000] in <filename unknown>:0 

    at my_program.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'System.Runtime.Versioning.TargetFrameworkAttribute' from assembly 'Newtonsoft.Json'. 

    at my_program.CJSONStuff.serialize (System.Collections.Generic.Dictionary`2 obj) [0x00000] in <filename unknown>:0 

    at my_program.TheObjDB.getAllSerialized() [0x00000] in <filename unknown>:0 

    at my_program.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 

Nunca he usado mono antes, y no tengo idea de lo que está pasando ... pero ¿quizás esto significa que la DLL no se puede usar porque no se ha compilado también con mono? Si ese es el caso; ¿Esto significa que no puedo usar ninguna DLL de grupo en 3D con mono a menos que también tenga el código fuente?

Respuesta

6

Porque el mono por defecto usa el tiempo de ejecución v 2.0 pero nuget está usando v4.0. puede ser su determinación mediante la definición de parámetros de tiempo de ejecución de mono:

mono --runtime=v4.0.30319 NuGet.exe 

Fuente: http://monomvc.wordpress.com/2012/03/06/nuget-on-mono/

+0

Gracias, que funcionó bien en las ventanas! En una nota no relacionada, linux sais 'la versión de tiempo de ejecución compatible con esta aplicación no está disponible, utilizando el tiempo de ejecución predeterminado v1.1.4322', pero eso parece un problema diferente por completo. Aceptaré la respuesta cuando pueda. – natli

+0

Ha comprobado este hilo: http://stackoverflow.com/questions/5327672/running-net-4-application-with-mono – Tarik

+0

Sí, parece que 'apt-get install mono-complete' instaló la versión 2.6.7 donde Necesito al menos 2.8 para .net 4.0 ... parece que tengo que instalar 2.10 de la fuente ... bah. ¡Gracias! – natli

Cuestiones relacionadas