我有一个由mono
执行的C#程序。从C#程序,我想获得运行该程序的mono
vm二进制文件的路径。是否有API?
请注意,我不是要求C#程序的路径,而是要求单声道vm二进制文件的路径(例如/usr/local/bin/mono
)。
答案 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的目录。