Laden...

Feststellen ob .net Laufzeit Installiert ist

Erstellt von schuppsl vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.392 Views
S
schuppsl Themenstarter:in
789 Beiträge seit 2007
vor 16 Jahren
Feststellen ob .net Laufzeit Installiert ist

Hallole.
Ich weiß diese Thema hat es schon 1000mal gegeben.
Aber ich suche schon seit Stunden hier im Forum und in google.
Aber immer heist es nur man soll nach Bootstrapper suchen was ich auch gemacht habe, aber wieder nur auf den Hinweis gelangte.

Ich arbeite mit C# 2008 Express und habe einen kleinen Dialog geschrieben der eine XML Datei bequem editiert.

es ist kein Installationsroutine dabei sondern nun ne .exe was ich auch beihehalten will.

Startet man die exe auf einem anderen System gehts natürlich nicht, da das .net Framework 2.0 nicht installiert ist.

Ich habe auch auf der msdn gefunden wie man die Version herausfindet, das geht aber natürlich auch wieder nur mit installierter Runtime.

Was ich möchte ist :
Daß beim Start der exe überprüft wird ob und welche .net Runtime installiert ist und im Falle des nicht vorhandenseins eine Messagebox mit dem entsprechenden Text erscheint.

Fertig.

Wie mache ich das?

bin für jede Hilfe dankbar, schuppsl

S
8.746 Beiträge seit 2005
vor 16 Jahren

Aber dir ist klar, dass du das natürlich nicht in .NET coden kannst. Das musst du schon in einer Umgebung machen, die nicht runtime-basiert ist, z.B. in C, C++, Delphi etc.

http://blogs.msdn.com/heaths/archive/2006/04/07/571241.aspx

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo schuppsl,

Daß beim Start der exe überprüft wird ob und welche .net Runtime installiert ist und im Falle des nicht vorhandenseins eine Messagebox mit dem entsprechenden Text erscheint.

Jedenfalls nicht mit einem .NET-Programm, weil das ja ohne die Laufzeitumgebung gar nicht erst starten würde. Also musst du ein Vorschaltprogramm in einer anderen Sprache schreiben, das das prüft, z.B. in native C.

Eine solche Aussage findet sich aber bestimmt in verschiedenen Threads schon.

herbivore

S
schuppsl Themenstarter:in
789 Beiträge seit 2007
vor 16 Jahren

Ok ich kann das Projekt ja als DLL erstellen.
Dann erstelle ich eben ein C++ Programm und lese darin die c# Dll ein.

daraus ergeben sich dann wieder 2 Fragen:

  1. Wie rufe ich dann aus der DLL den Dialog auf?
  2. Wie stelle ich mit C++ fest welche .net Runtime installiert ist?

Wie macht Ihr das?
Ich meine, ich habs hier mit DAUs zu tun, wenn die nicht eine ganz genaue Meldung bekommen was zu tun ist, läuft bei mir das Telefon heiß...

Danke schuppsl

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo schuppsl,

ich würde das nicht mit DLLs machen. Schreib ein kleine EXE in native C++, dass auf die Runtime prüft und dann entweder das eigentliche Programm startet oder aber eine Meldung ausgibt.

herbivore

S
schuppsl Themenstarter:in
789 Beiträge seit 2007
vor 16 Jahren

Ok aber dann habe ich schon wieder 2 *.exe Dateien->verwirrung beim Kunden, glaubs mir.
Aber die Preisfrage ist doch wie ich mit c++ feststelle welche .net runtime installiert ist?

S
8.746 Beiträge seit 2005
vor 16 Jahren

Original von schuppsl
Ok aber dann habe ich schon wieder 2 *.exe Dateien->verwirrung beim Kunden, glaubs mir.

Deswegen baut man sich ja auch ein Setup. Dort wird geprüft und bei Bedarf die Runtime installiert. Wenn du das nicht willst, dann musst du mit den 2 EXEn leben. Von Lösungen a la "Ressource temporär auf die Platte schreiben" würde ich abraten. Schafft nur neue Probleme.

Aber die Preisfrage ist doch wie ich mit c++ feststelle welche .net runtime installiert ist?

Der Weg ist immer der Gleiche: Die Registry auf bestimmte Keys (siehe Link) prüfen.

S
schuppsl Themenstarter:in
789 Beiträge seit 2007
vor 16 Jahren

Ok alles klar.
Link? Welcher Link?

S
8.746 Beiträge seit 2005
vor 16 Jahren

Original von schuppsl
Link? Welcher Link?

Brille aufsetzen, Hochscrollen, Aufmerksamkeitsprogramm laden und ausführen.

S
schuppsl Themenstarter:in
789 Beiträge seit 2007
vor 16 Jahren

Original von svenson

Original von schuppsl
Link? Welcher Link?

Brille aufsetzen, Hochscrollen, Aufmerksamkeitsprogramm laden und ausführen.

Yapp...danke.
Ich habs schon mit InnoSetup.
Danke für die Hilfe...