Autor Beitrag
ledge
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 18.01.10 17:06 
Hallo zusammen,

gibt es einen funktionierenden Weg die auf einem Rechner installiereten Frameworkversionen zu ermitteln?
Wenn es geht bitte mit Beispiel.

Gruß, Wolle
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Di 19.01.10 10:47 
Hallo Wolle,

normal verwende ich ein Setup-Projekt, dass bei der Installation sicherstellt, dass die richtige RunTime-Umgebung vorhanden ist und ggfs. nachinstalliert. Generell interessiert es mich trotzdem, ob und wie es möglich ist. Google war auch ganz gesprächig ;)

dotnet.mvps.org/dotnet/articles/dnchk/ Finde ich sehr gut. Ich denke irgendwo findet man bestimmt auch schon eine Library die die Registry dementsprechend ausliest.

Gruß Daniel

Edit: System.Environment.Version
ledge Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 19.01.10 14:45 
Hallo Daniel,

das Beispiel mit System.Environment.Version ist leider ein Visual Basic Beispiel.
Bekomme das irgendwie nich umgestrickt.

Gibt es kein Beispiel wie man das unter c# genau macht?

Gruß, Wolle
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Di 19.01.10 14:56 
?

System.Environment.Version gehört zum .NET-Framework und ist damit genau so verwendet bar wie bei VB. Was für eine VisualStudio Version hast du?
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 19.01.10 15:04 
Bei mir steht es als C#-Beispiel. Das ist aber so primitiv, dass es auch ohne Beispiel-Code geht:

Environment.Version ist eine statische Eigenschaft, die die Nummern für Haupt- und Nebenversion, Build und Revision der Common Language Runtime beschreibt. Wie für jedes Objekt gibt es natürlich auch dafür die ToString-Methode, oder du fragst du Bestandteile einzeln ab, die unter Version-Member aufgeführt sind.

Aber ich glaube, damit ist die eigentliche Frage nicht beantwortet: Welche Versionen sind installiert?

Bei mir stehen sie als Unterverzeichnisse von C:\Windows\Microsoft.NET\Framework. Man könnte diesen Pfad finden über: Environment.SpecialFolder.System -> ein Verzeichnis darüber -> Microsoft.NET -> Framework. Das geht dann vermutlich so:
ausblenden C#-Quelltext
1:
2:
3:
string path = Path.GetFullPath
  ( Path.Combine(Environment.SpecialFolder.System, @"..\Microsoft.NET\Framework") );
string[] versions = Directory.GetDirectories(path);

(Nicht getestet, nur geschrieben)

Der vollständige Weg sollte über die Registry gehen, aber das habe ich nicht auch noch versucht.

Gruß Jürgen