2011-08-16 12 views
14

可能性の重複:.NETで
How to detect which .NET runtime is being used (MS vs. Mono)?コードがMono上で実行されているとはどうすればわかりますか?

私のコードは、モノラルで実行されている場合、ダウは私が言いますか? mono porting guideから

+2

(私はコメントとして追加するように言われました、申し訳ありません)色= Dを確認してください(私はそれが乾いていますが、mehです) – Coops

答えて

18

:以下

http://www.mono-project.com/FAQ:_Technical

は、そのリンクから直接です:

で実行している場合、私は検出することができますどのように

モノ?基本となるランタイムに依存

持つコードが 悪いコーディングスタイルと考えられ、時にはこのようなコードは、周りの 実行時のバグを作業する必要があります。モノ検出の担持方法は、次のとおり

using System; 

class Program { 
    static void Main() 
    { 
     Type t = Type.GetType ("Mono.Runtime"); 
     if (t != null) 
      Console.WriteLine ("You are running with the Mono VM"); 
     else 
      Console.WriteLine ("You are running something else"); 
    } 
} 

その他のハックは、そのような可能System.Int32 のまたは他のcorlibタイプの基本タイプをチェックするように、将来的には失敗する運命にあります。

長すぎるものではありません。

+0

Thanks Adamバグを回避する必要があるかもしれないので、私は尋ねるだけです。 – Simon

+0

@シモンは問題ありません。時には明らかにあなたがしてはいけないものも必要です。 –

+0

それは重複していることが判明しました:)しかし、まだ良い答えがありました – Simon

11

:モノラルよくある質問から

public static bool IsRunningOnMono() 
{ 
    return Type.GetType ("Mono.Runtime") != null; 
} 
関連する問題