wer kennt das Problem nicht, man hat ein .net Programm und will es weitergeben weiß aber nicht ob am Zielcomputer das .net Framework installiert ist.
Deshalb hab ich ein Skript geschrieben (teils Batch-Datei, teils VB-Script), welches
- prüft ob das .net Framework bereist installiert ist
- wenn nicht eine Meldung anzeigt, dass das Framework runtergeladen und installiert wird (mehrsprachig - derzeit Englisch oder Deutsch je nach der Sprache des Betriebssystems)
- erkennt ob das OS 32 oder 64bit ist und lädt das richtige .net Framework aus dem Internet
- startet die Installation
- (ist das Framework bereits installiert schließt sich das Script sofort wieder)
- downloaddotnet.vbs ... ist ein VB-Script zum downloaden einer Datei aus dem inet
- TestForDotNetBatch.cmd ... batch Datei. Diese muss gestartet werden, um den ganzen Prüf- und Downloadprozess zu starten.
- dotnet32.txt und dotnet64.txt ... Konfigurationsdateien von welcher Adresse das Framework runtergeladen werden soll. In jeder Datei steht eine Internetadresse von wo das .net Framework runtergeladen werden soll. Da ich bei Microsoft keinen dauerhaft gültigen direkten Link auf die framework-Exes finden konnte, hab ich die 64bit und 32bit Version des Frameworks runtergeladen und selbst bei mir gehostet. Die entsprechende Adresse gehört in diese Dateien.
Und das alles in weniger als 2 kbyte
Also sehr gut geeignet wenn man möchte dass die Größe des Setup Paketes klein bleibt.
Wie ist es zu benutzen?
Es gibt 4 Dateien:
Wenn man z.B. ein Setupprojekt oder selbstentpackendes Archiv hat, einfach einstellen, dass die Datei TestForDotNetBatch.cmd nach der Installation gestartet werden soll.
Ich hab das ganze auf XP und Vista getestet. Auf 2000/ME/98 funktioniert es ziemlich sicher nicht, könnte man aber evt. auch irgendwie hinkriegen.
Welche Frameworkversion?
Zurzeit ist das Skript für .net Framework 2.0 ausgelegt ist. Sprich, wenn Framework 2.0, 3.0 oder 3.5 installiert ist, dann passt alles. Wenn nicht, wird installiert.
Welches Framework installiert werden soll kann man ganz einfach selbst bestimmen, da man ja in die Dateien dotnet32.txt und dotnet64.txt die Links zu den Exe-Dateien eintragen muss.
Möchte man als Mindestvorraussetzung für sein Programm das 3.0 oder 3.5er Framework ist das kein Problem.
Die ersten drei Zeilen der TestForDotNetBatch.cmd Datei sehen wie folgt aus:
if exist "%WINDIR%\Microsoft.NET\Framework\v2.0.50727\" goto ende
if exist "%WINDIR%\Microsoft.NET\Framework\v3.0\" goto ende
if exist "%WINDIR%\Microsoft.NET\Framework\v3.5\" goto ende
In Zeile 1 wird also auf Framework 2 geprüft, auf Zeile zwei auf 3 usw.Durch löschen der ersten Zeile wird somit nur mehr auf Version 3.0 und 3.5 geprüft, durch entfernen der ersten und zweiten Zeile nur mehr auf 3.5
Würde mich über Rückmeldungen (sei es auch nur Bug-Report) sehr freuen
Gruß
Preli
PS: bitte erzählt mir nicht dass es dafür ClickOnce gibt, das weiß ich. Was mich aber an ClickOnce stört ist, dass ohne ein ordentliches (teures) Zertifikat immer eine Warnmeldung vor der Installation kommt (sieht nicht schön aus). Außerdem ist meiner Erfahrung nach die Erkennung ob das .net Framework bereits installiert ist äußerst buggi.