2012-10-12 117 views
0

我有一个需要在单声道下运行的.NET库,为了正常工作,我需要确定单声道安装的路径。单声道文件提到了一个MONO_HOME环境变量,但是在安装Mono for Windows之后,这个变量没有设置,所以它看起来不可靠。在Linux上可靠吗?除了要求我的库的用户正确手动设置MONO_HOME以使事情正常工作之外,我还有其他任何Windows选择吗?如何确定Windows和/或Linux下的Mono根目录?

我需要一种方法来确定框架程序集的所有Mono版本在哪里,因为我的库基本上做了Visual Studio的工作(加载解决方案和项目,根据指定的目标框架版本从框架程序集加载元数据,等等)。

+0

如果一切都失败了,您是否考虑过进行文件/文件夹搜索? – rene

回答

2

这应该在两个平台上运行:

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

又见Environment.cs私有财产GacPath,这就是它是如何计算的Windows上。我也只是在我的Mac上试过这个,并且它返回了正确的安装目录。

+0

谢谢 - 这应该工作!我认为“MONO_HOME”就是一个愚蠢的例子,无论如何,这个例子是我在“网络上从未有过的事情上绊倒过的”。不过,对于Mono来说,设置指向安装根目录的标准环境变量似乎是一个好主意...... –

相关问题