mono C#获取正在运行的mono vm的路径

时间:2016-01-07 13:41:28

标签: c# mono

我有一个由mono执行的C#程序。从C#程序,我想获得运行该程序的mono vm二进制文件的路径。是否有API?

请注意,我不是要求C#程序的路径,而是要求单声道vm二进制文件的路径(例如/usr/local/bin/mono)。

1 个答案:

答案 0 :(得分:2)

您可以执行MonoDevelop所做的工作来查找location of Mono。这是基于查找程序集的位置,然后返回四个目录以查找当前正在使用Mono的前缀。

首先找到包含 int 的程序集的位置。

string location = typeof (int).Assembly.Location;

然后你上去四个目录找到前缀。 MonoDevelop使用以下代码执行此操作,其中up​​设置为4。

    static string PathUp (string path, int up)
    {
        if (up == 0)
            return path;
        for (int i = path.Length -1; i >= 0; i--) {
            if (path[i] == Path.DirectorySeparatorChar) {
                up--;
                if (up == 0)
                    return path.Substring (0, i);
            }
        }
        return null;
    }

string prefix = PathUp (typeof (int).Assembly.Location, 4);

这将为您提供前缀,通常为/ usr或/ usr / local,然后您可以附加 bin 以查找运行Mono的目录。