2009-03-27 13 views
1

Die MSDN article auf der Befehlszeile C# Bestimmung Compiler/lib-Schalter gibt die folgende: -die CLR System Directory

Der Compiler sucht nach Montage Referenzen, die in der folgenden Reihenfolge nicht voll qualifiziert sind:

  • Aktuelles Arbeitsverzeichnis. Dies ist das Verzeichnis, von dem der Compiler aufgerufen wird.

  • Das Common Language Runtime-Systemverzeichnis.

  • Von/lib angegebene Verzeichnisse.

  • Verzeichnisse, die durch die Umgebungsvariable LIB angegeben werden.

Wie Sie programmatisch bestimmen, wo das CLR-Laufzeitsystem-Verzeichnis auf dem System befindet?

Antwort

1

Sie können HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework \ InstallRoot nach dem Speicherort der .NET-Laufzeit suchen.

Sie können auf die Registrierung mit den Klassen Microsoft.Win32.Registry zugreifen.

+0

Leider, im Gegensatz zu Sam Saffron Antwort dieses diese Version Ordner nicht. – repka

+0

Aber es kann mehrere Versionsordner geben. Eine einfache Liste der Unterverzeichnisse sollte Ihnen eine Liste aller verfügbaren Versionen des Frameworks geben. Alles aus der CLR. – glenatron

3

nativen Export von mscoree.dll - GetCORSystemDirectory()

+0

+1 schön, brauchen Sie einen Schalter, der für mscorwks auch versucht? –