48 votes

Comment détecter .NET est utilisé (MS vs Mono)?

Je voudrais savoir lors de l'exécution d'un programme, si elle est exécutée à l'aide de la Mono exécution ou le runtime Microsoft.

Je suis actuellement en utilisant le code suivant pour déterminer si je suis sur un MS CLR:

static bool IsMicrosoftCLR()
{
    return RuntimeEnvironment.GetRuntimeDirectory().Contains("Microsoft");
}

Cependant, c'est en quelque sorte dépendant sur le dossier d'installation du runtime et je ne suis pas sûr si cela va fonctionner sur toutes les installations.

Est-il un meilleur moyen de vérifier l'exécution actuel?

78voto

Mystic Points 1805

À partir de la Mono du Projet de Guide pour le Portage d'Applications Winforms:

public static bool IsRunningOnMono ()
{
    return Type.GetType ("Mono.Runtime") != null;
}

Je suis sûr que vous aurez beaucoup plus de questions, donc la peine de vérifier ce guide et les mono-forums

23voto

Alex Points 301

Vous pouvez vérifier le Mono d'Exécution Comme ceci

bool IsRunningOnMono = (Type.GetType ("Mono.Runtime") != null);

8voto

Binoj Antony Points 7519

il suffit d'exécuter le code ci-dessous..

static bool IsMicrosoftCLR()
{
    return (Type.GetType ("Mono.Runtime") == null)
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X