[英]At runtime how does one determine which mono version is being used?
在系統上,可能存在多個Mono運行時版本。 例如
/usr/bin/mono
/usr/local/bin/mono
從C#應用程序創建新的托管流程時,明確說明要與之一起運行的單聲道版本可能很有用。 (路徑中的單聲道可能不是用於運行當前進程的單聲道)
使用Process類獲取當前進程名稱將返回Mono正在運行的程序集,而不是Mono本身。
確定當前正在使用哪個Mono運行時的最佳方法是什么?
在Linux上,可以使用進程ID和/proc
查找單可執行文件。
string monopath = String.Format("/proc/{0}/exe", Process.GetCurrentProcess().Id);
monopath將是當前正在執行的Mono運行時的符號鏈接,可用於啟動新進程:
Process.Start(monopath);
您可以使用
Type monoRuntimeType;
MethodInfo getDisplayNameMethod;
if ((monoRuntimeType = typeof(object).Assembly.GetType("Mono.Runtime")) != null &&
(getDisplayNameMethod = monoRuntimeType.GetMethod("GetDisplayName",
BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.DeclaredOnly | BindingFlags.ExactBinding, null,
Type.EmptyTypes, null)) != null)
Console.WriteLine("Mono " + (string)getDisplayNameMethod.Invoke(null, null));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.