조립

2012-07-22 3 views
8

내가 모노조립

컴파일 명령을 사용하여 라이브러리 Newtonsoft.Json.dll를 사용하는 프로그램을 컴파일하려고에서 형 System.Runtime.Versioning.TargetFrameWorkAttribute를로드 할 수 없습니다

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

결과 :

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 

그리고 나서 프로그램 (mono Program.exe)을 실행하려고하면 오류가 발생합니다 :

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 

이전에는 모노를 사용 해본 적이 없으며 무슨 일이 벌어지고 있는지 전혀 모르겠지만 어쩌면 이것은 모노로 컴파일되지 않았기 때문에 DLL을 사용할 수 없다는 것을 의미할까요? 그렇다면 이것은 내가 소스 코드를 가지고 있지 않으면 모노로 3D 파티 DLL을 사용할 수 없다는 것을 의미합니까?

답변

6

기본 모노는 v2 런타임을 사용하지만 너겟은 v4.0을 사용하기 때문에. 그 모노에서 런타임 매개 변수를 정의함으로써 해결 될 수 있습니다

mono --runtime=v4.0.30319 NuGet.exe 

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

+0

감사, 창문에 괜찮 았는데! 관련없는 메모에서 linux sais '이 응용 프로그램에서 지원하는 런타임 버전은 기본 런타임 v1.1.4322를 사용하여 사용할 수 없지만 다른 문제가있는 것처럼 보입니다. 가능한 경우 대답을 수락합니다. – natli

+0

이 스레드를 확인해 보셨습니까? http://stackoverflow.com/questions/5327672/running-net-4-application-with-mono – Tarik

+0

예,'apt-get install mono-complete' 버전 2.6.7이 설치되어있는 것 같습니다. 적어도 .net 4.0에 대해 2.8이 필요합니다 ... 원본에서 2.10을 설치해야합니다. .. bah. 그래도 고마워! – natli