2014-05-13 9 views
2

먼저, this question을 보았습니다. 문제는 비슷하지만 동일한 것은 아닙니다.어셈블리 mscorlib.dll을 찾을 수 없거나로드 할 수 없습니다.

./configure --with-profile4=yes --with-profile4_5=no을 사용하여 4.5 프로파일없이 작성된 트리밍 된 모노를 실행 중입니다.

모노의 xbuild을 사용하여 빌드 된 .NET 4.0을 대상으로하는 응용 프로그램이 있습니다. 내 아래로 손질 모노 설치에 대해 그것을 실행하면이 오류를 얻을 :

The assembly mscorlib.dll was not found or could not be loaded. It should have been installed in the `/opt/my-app/mono/lib/mono/4.5/mscorlib.dll' directory.

지금, 난 단지 4.0 어셈블리를 참조하고 있지 않다 - 4.5, AFAICS에서 아무것도.

왜이 오류가 발생합니까? (나는 여전히 mscorlib.dll를 얻을 수 있지만 내 아래로 손질 모노에 대해 실행할 때, msbuild로 만들 때 아닌)이 관련이있는 경우

는 잘 모르겠지만, 나는 xbuild 건물이 경고를 얻을 :

warning CS1685: The predefined type `System.Runtime.CompilerServices.ExtensionAttribute' is defined multiple times. 
Using definition from `mscorlib.dll' 

이 중 하나와 관련이 있는지 확실하지 않지만 빌드 시스템에는 .NET 4.5가 설치되어 있습니다.

+0

필요한 4.0 버전 대신 4.5 버전을 사용하여 잘못된 참조 어셈블리로 앱을 제작하고 있습니다. ExtensionAttribute에 대한 경고는 관련성이 높습니다. 4.5에서 System.Core에서 mscorlib로 옮겨졌습니다. 그렇지 않으면 이것이 어떻게 일어 났는지 꽤 불분명하다. 아마도이 "다듬어 진"버전은 너무 정돈되어 있을지도 모른다. –

+0

4 배 검사를했고 프로젝트에서 .NET 4.0을 목표로하고 있으며 .NET DLL에 대한 모든 참조는 C : \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4에 있습니다. 0 '이다. 이 단계에서 Mono에서 손질 한 유일한 것은 4.5 프로파일 지원입니다. – Cocowalla

답변

3

나는 그것을 알아 냈다 - I가 MONO_PATH을 설정하는 데 필요한 :

/opt/my-app/mono/lib/mono/4.0:/opt/my-app/mono/lib/mono/3.5:/opt/my-app/mono/lib/mono/2.0:.

그래서 내가 어디에 도서관을 찾아하는 방법을 알 필요가; 나는 (잘못) 모노 실행 파일의 위치를 ​​기반으로 자동으로 가정했다.

+0

3.4 릴리스에서이 문제가 발생하는 경우 http://stackoverflow.com/questions/22285830/linux-mono-installation-and-errors/23904603 – natli

+0

@natli 내 문제는 3.4.0을 참조하십시오. 귀하의 [답변] (http://stackoverflow.com/a/23904603/25758)에 따라, 나는 이미 tarball에서 누락 된 파일을 다시 만들고 있었지만이 오류가 여전히 발생했습니다 – Cocowalla

+0

파일을 올바르게 작성 했습니까? 내 anwser에 대한 귀하의 의견에서 내 echo 명령에 '이상한 점'이 있다고 말했지만 파일의 내용이 어떻게 보이는지에 대한 것입니다. 내 대답에서 명령을 사용하여 지금 당장 4 서버에 모노 3.4를 설치했는데 정상적으로 작동합니다. 그래서 파일을 올바르게 작성했다면 매우 이상합니다./ – natli