Wie ermittelt man die .NET-Framework-Version des Clients in einer Webanwendung?

8

Ich muss die .NET-Framework-Version des Clients in meiner Webanwendung ermitteln. Ich arbeite teilweise vertraulich, so dass ich das Dateisystem oder die Registrierung nicht lesen kann ( Gibt es eine einfache Möglichkeit, die Überprüfung von .net Framework mit C # zu überprüfen? ).

  • System.Environment.Version gibt die Laufzeitversion zurück, daher kann ich diese nicht verwenden.

  • Ich kann JavaScript nicht verwenden

Der einzige Weg, an den ich im Moment denken kann, ist zu versuchen, eine .NET 3.5 dll zu laden und eine Ausnahme zu fangen, aber das klingt nicht sehr nett.

Irgendwelche Vorschläge?

Aktualisierung:

Request.Browser.ClrVersion und Request.Browser.GetClrVersions() geben die .NET Framework-Version (en) zurück, die auf dem Client installiert sind.

    
Ezombort 18.03.2010, 08:03
quelle

4 Antworten

5
___ answer2468745 ___

Eine Möglichkeit besteht darin, die referenzierte Assembly-Liste von der aktuellen Assembly abzurufen. Und dann suchen Sie nach Mscorlib.dll (oder jeder anderen .net-Assembly, die Sie sicher geladen werden) und die Version dieser Assembly abrufen. Auf diese Weise können Sie die installierte Version von Framework kennen.

probiere diesen Code:

%Vor%

Dies hängt von der Verfügbarkeit der Assembly ab, für die Sie die Version auswählen.

Oder werfen Sie einen Blick auf diesen CodeProject Artikel. In diesem Artikel verweist er / sie auf einen anderen Artikel von Junfeng Zhang , der verwendet Unverwalteter Code zum Ermitteln der CLR-Version.

    
___ answer2468554 ___

Ich denke, Sie sollten etwas wie den folgenden msdn-Artikel vorschlagen . Es verwendet Java-Skript, um die Erkennung von .NET Framework zu tun.

    
___ qstntxt ___

Ich muss die .NET-Framework-Version des Clients in meiner Webanwendung ermitteln. Ich arbeite teilweise vertraulich, so dass ich das Dateisystem oder die Registrierung nicht lesen kann ( Gibt es eine einfache Möglichkeit, die Überprüfung von .net Framework mit C # zu überprüfen? ).

  • System.Environment.Version gibt die Laufzeitversion zurück, daher kann ich diese nicht verwenden.

  • Ich kann JavaScript nicht verwenden

Der einzige Weg, an den ich im Moment denken kann, ist zu versuchen, eine .NET 3.5 dll zu laden und eine Ausnahme zu fangen, aber das klingt nicht sehr nett.

Irgendwelche Vorschläge?

Aktualisierung:

Request.Browser.ClrVersion und Request.Browser.GetClrVersions() geben die .NET Framework-Version (en) zurück, die auf dem Client installiert sind.

    
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ tag123aspnet ___ ASP.NET ist ein Framework für die Entwicklung von Microsoft-Webanwendungen, mit dem Programmierer dynamische Websites, Webanwendungen und Webdienste erstellen können. Es ist nützlich, dieses Tag in Verbindung mit dem Typ des Projekttyps zu verwenden, z. [asp.net-mvc], [asp.net-webforms] oder [asp.net-web-api]. Verwenden Sie dieses Tag NICHT für Fragen zu ASP.NET Core - verwenden Sie stattdessen [asp.net-core]. ___ answer8343719 ___

Ich verwende die folgende Klasse, die direkt vom Methodeneinstiegspunkt Main () aufgerufen wird, und habe dann die Wahl, den Benutzer über MessageBox oder Console.WriteLine zu informieren. Dieser Code basiert auf der Tatsache, dass:

  • Die Klasse System.Linq.Enumerable erschien mit .NET v3. 5
  • Diese Klasse ist in der Assembly System.Core.dll deklariert, die auch mit .NET v3.5
  • angezeigt wurde
  • Die Ausnahme FileNotFoundException wird ausgelöst, wenn eine Assembly nicht gefunden wird.
%Vor%     
___ qstnhdr ___ Wie ermittelt man die .NET-Framework-Version des Clients in einer Webanwendung? ___
Steven 19.03.2010, 07:13
quelle
3

Ich denke, Sie sollten etwas wie den folgenden msdn-Artikel vorschlagen . Es verwendet Java-Skript, um die Erkennung von .NET Framework zu tun.

    
Ikaso 18.03.2010 09:12
quelle
2

Eine Möglichkeit besteht darin, die referenzierte Assembly-Liste von der aktuellen Assembly abzurufen. Und dann suchen Sie nach Mscorlib.dll (oder jeder anderen .net-Assembly, die Sie sicher geladen werden) und die Version dieser Assembly abrufen. Auf diese Weise können Sie die installierte Version von Framework kennen.

probiere diesen Code:

%Vor%

Dies hängt von der Verfügbarkeit der Assembly ab, für die Sie die Version auswählen.

Oder werfen Sie einen Blick auf diesen CodeProject Artikel. In diesem Artikel verweist er / sie auf einen anderen Artikel von Junfeng Zhang , der verwendet Unverwalteter Code zum Ermitteln der CLR-Version.

    
ata 18.03.2010 09:43
quelle
1

Ich verwende die folgende Klasse, die direkt vom Methodeneinstiegspunkt Main () aufgerufen wird, und habe dann die Wahl, den Benutzer über MessageBox oder Console.WriteLine zu informieren. Dieser Code basiert auf der Tatsache, dass:

  • Die Klasse System.Linq.Enumerable erschien mit .NET v3. 5
  • Diese Klasse ist in der Assembly System.Core.dll deklariert, die auch mit .NET v3.5
  • angezeigt wurde
  • Die Ausnahme FileNotFoundException wird ausgelöst, wenn eine Assembly nicht gefunden wird.
%Vor%     
quelle

Tags und Links