PDA

Vollständige Version anzeigen : Installations-CDs erstellen


Bo
25.02.2004, 10:10
Hallo

Sachverhalt: ich entwickle ein Programm in VB 6.0 SP 5 unter Windows XP das mit Office Word über Automatisierung zusammenarbeitet (in der Entwicklungsumgebung mit Off Word XP).
Anmerkung: kein Verweis auf die Word Libary im Programm!

Beim Erstellen der exe werden die benötigten Systemdateien zusammen gesucht und beim Verpacken entsprechend dazugelinkt.

jetzt hab ich aber das Problem, dass ich auf manchen Rechnern die Installation nicht zum Laufen bekomme, weil die Systemdateien aktualisiert werden sollen, ein Neustart erforderlich wird und danach wieder die Systemdateien aktualisiert werden sollen. Ich bin aber als Administrator bei der Installation angemeldet. Setze ich in der setup.lst die zu aktualisierenden Systemdateien auf rem, läuft das Programm und auch die Anwendung, diese Vorgehensweise kann ich aber meinen Anwendern nicht zumuten. Da ich ja auch nicht weiß welche Systemdateien beim Anwender vorliegen, kann ich auch nicht vorneweg alle Systemdateien aus der Installationsroutine entfernen.

Muss ich jede Umgebung vorhalten und genau auf dieser mein Installationspaket erstellen? Das kanns doch nicht sein? Was mache ich falsch, gibts da eine Vorgehensweise, die das Problem vermeidet - ich dachte diese Probleme gibts nur bei VBA - und der Runtime Version von Access - jetzt ist das mit VB der selbe Mist????

Bo
01.03.2004, 23:03
Kann die Ursache sein, dass auf dem Pc mit dem die Installations-CDs erstellt wurden Service Release und Packs installiert sind und auf dem Pc wo installiert werden soll nicht?

Klappen denn Eure Installationen auf allen Rechner problemlos - wenn ja wie macht ihr das?

Sascha Trowitzsch
02.03.2004, 01:43
Der Setup-Wizzard von Access Developer und der von VB6 sind ja identisch und machen deshalb auch den identischen Mist.

Auf Rechnern mit W98 wird dein Setup veilleicht noch laufen, auf neueren Betriebssystemen nicht.
Das Setup versucht die Dateien ole32.dll und oleaut32.dll zu installieren. Weil das Systemdateien sind, wird ein Neustart verlangt. Danach geht dasselbe von vorne los, weil W2000 etc. nicht so blöd sind, sich eine falsche Version dieser Dlls unterzuschieben zu lassen. Sie holen sich aus dem DLL-Cache im WinNT-Verzeichnis wieder die richtigen Versionen und tauschen sie automatisch aus.

Das Problem löst sich dadurch, dass du diese Dateien aus dem Setup rauslässt, also in der Liste des Verpackungsassistenten deaktivierst. (Ich glaube, es sind noch andere DLLs, die überflüssig sind; irgendwas mit async.dll)
Auf jedem funktionierenden System sind heutzutage die richtigen Versionen dieser DLLs schon drauf.

Ciao, Sascha

Bo
03.03.2004, 13:50
Hallo Sascha,

danke für deine Antwort.
In der Regel funktioniert das Setup schon, es versucht ja nur ältere Dateien zu ersetzen, das ist die Konstellation, wenn ich das Setup mit höheren Servicepacks erstellt habe, als auf dem Rechner auf dem installiert werden soll, vorhanden sind.
Ich setze die Systemdateien in solchen Fällen auf rem, allerdings bin ich mir unsicher, welche ich denn nun raus nehmen kann und welche nicht, und einzeln durchhangeln ist ätzend und wenn ich zuviel weglasse ....

Selbst wenn ich eine anderes Programm zum InstallationCds erstellen nehme, zB. Inno muss ich ja genau sagen welche Datei er wohin stellen soll, oder?

Wie bekomme ich also heraus, welche Systemdateien von der Anwendung überhaupt benötigt werden? Hast du mir da noch nen Tip?


Viele Grüße

Liane

Sascha Trowitzsch
04.03.2004, 11:52
Wie bekomme ich also heraus, welche Systemdateien von der Anwendung überhaupt benötigt werden?
Da kann man keine allgemeine Aussage treffen.

Es hängt z.B. vom Zielsystem ab. Wenn das z.B. alle Windows-Versionen inkl. W95 sein sollen, dann müssen mehr Systemdateien mit ins Setup - auch die OLE-DLLs -, weil die in W95 veraltet sind und deshalb evtl. nicht mit dem VB-Programm korrekt zusammenarbeiten.
Ist das Zielsystem WXP/2003, dann kann man getrost alle Systemdateien weglassen.

Das Problem ist aber nicht die Menge an Systemdateien, die man ins Setup packt, sondern der Installer selbst: Der PDW von VB/Access-Developer versucht diese Dateien zu installieren, auch wenn im System bereits eine neuere Version vorhanden ist! Das ist eigentlich für einen Installer heutzutage unhaltbar. Jedes auf dem Windows-Installer basierende Programm und auch andere brauchbare Installer (WISE, Installshield,...) installieren diese Dateien erst, nachdem sie die Versionsnummern abgecheckt haben. Da tritt der geschilderte Effekt dann gar nicht auf.

Summa summarum: Lass den VB-Verpackungsassistenten links liegen und wende dich einem anderen Installer zu.
Bei Inno muss man die Dateien explizit angeben und du kannst da den VB-PDW ja mal durchlaufen lassen, damit er die Abhängigkeiten scannt und du eine Liste der Dateien erhältst, die dann in Inno reingesetzt werden müssen - also nur für diesen Dateien-Check.
Professionelle Installer wie WISE haben meist ein VB-Plugin, dass dieses Scannen der benötigten Dateien selbst erledigen kann.

Ciao, Sascha