2012-10-12 2 views
0

Mono에서 실행해야하는 .NET 라이브러리가 있으며 제대로 작동하려면 Mono 설치 경로를 결정해야합니다. Mono 문서에는 MONO_HOME 환경 변수가 있지만 Windows 용 Mono를 설치 한 후에는이 변수가 설정되지 않으므로 신뢰할 수 없습니다. Linux에서 신뢰할 수 있습니까? 내 라이브러리 사용자가 MONO_HOME을 올바르게 설정하여 작동하도록 요구하는 것 외에 다른 대안이 있습니까?Windows 및/또는 Linux에서 Mono 루트 디렉토리를 확인하는 방법은 무엇입니까?

내 라이브러리는 기본적으로 Visual Studio에서 수행하는 작업 (솔루션 및 프로젝트를로드하고 지정한 대상 프레임 워크 버전에 따라 프레임 워크 어셈블리에서 메타 데이터를로드하므로, 프레임 워크 어셈블리의 모든 Mono 버전을 확인하는 방법이 필요합니다. 기타).

+0

다른 모든 것이 실패 할 경우 파일/폴더 검색을 고려해 보셨습니까? – rene

답변

2

이 두 플랫폼에서 작동합니다 :

var corlibDir = new DirectoryInfo (Path.GetDirectoryName (typeof (int).Assembly.Location)).Parent.Parent.Parent.FullName; 

가 그것이 Windows에서 계산 된 것 방법, Environment.cs 또한 민간 GacPath 속성을 참조하십시오. 필자도 Mac에서이 기능을 시험해 보았습니다. 올바른 설치 디렉토리가 반환되었습니다.

+0

감사합니다 - 그게 효과가있다! 나는 "MONO_HOME"이 결코 어리석은 본보기 일 뿐이라고 생각합니다. 아직도 Mono가 설치 루트를 가리키는 표준 환경 변수를 설정하는 것이 좋습니다. –

관련 문제