Frage

ich verwende vs Installer ein Setup-Paket für meine VB6 app zu bauen. und das Problem ist ich, dass unter dem Projekt-Explorer sehen können gibt es eine Liste der Abhängigkeiten meine exe-Datei angehängt.

alt text http://img505.imageshack.us/img505/9696/croppercapture259lr8 .png

und unter dem Dateisystem auf Zielcomputer treeview, kann ich speichern tatsächlich die dll / ocx auf einen Ordner oder im Windows-Systemordner selbst [das linke Fenster].

alt text http://img101.imageshack.us/img101/9224/croppercapture251qm1 .png

Also, was ich nicht verstehe, ist .. Gibt es eigentlich einen Unterschied? wenn ich die Abhängigkeiten nur gesetzt und haben die dll oder ocx in den Ordner oder gewinnen sys Ordner nicht hinzufügen, wird die DLL automatisch über zu kopiert werden?

War es hilfreich?

Lösung

Es ist nicht garantiert, dass alle diese DLLs auf dem System vorhanden sein, dass die Software auf installiert wird. So müssen sie in Ihrem Installateur enthalten sein. Von dort aus haben Sie zwei Möglichkeiten.

Sie können sie in Ihrem Windows-Systemordner oder im Anwendungsordner installieren. Der Unterschied besteht darin, dass, wenn Sie sie in Ihrem Anwendungsordner installieren Sie die Dinge auf XP und Vista, so dass die andere Version der Software mit anderer Version der Komponenten und läuft Seite abgefeuert werden kann sie einstellen. sie in den Systemordner Die Installation bricht eine ältere Version, die auf ältere Version der Komponenten abhängen.

Installieren im Anwendungsordner nicht selten nicht, wenn eine Komponente von anderen Komponenten abhängt, die nicht aktualisiert werden können. Wenn dies der Fall ist es in der Regel mit Microsoft-Bibliotheken. Sie haben zu diesem Thema besser im Laufe der Jahre geworden.

Sie können mehr über die Themen lesen einander Ausführung beteiligt Seite hier

Schließlich müssen die Abhängigkeiten in Ihrem Installateur sein, so dass sie in der Windows-Registrierung registriert sind. Anders als die meisten Baugruppen .NET jede ActiveX / COM-Anwendung die Komponente, um registriert zu haben braucht, es zu benutzen, auch wenn Sie Create und Variant-Typen verwenden, darauf zuzugreifen.

Ich gebe den gesamten Prozess idiosynkratischen und ist eine der Quellen für die Geschichten über DLL-Hölle. Beginnen Sie mit dem MSDN-Artikel verwendet wikipedia und natürlich weitere Fragen stellen hier.

Andere Tipps

Sie sollten in der Regel haben keine „DLLs“ Ordner unter dem App-Ordner für ein normales Installer-Paket, aber es gibt viele Faktoren eine Rolle spielen (privat Standard DLLs, Reg-Free COM, etc.). Ja, erhalten die Abhängigkeiten enthalten (es sei denn, Sie ausschließen sie). Sie sollten jeweils eine Eigenschaft, die bestimmt, wo sie auf den Zielsystemen installiert werden.

Sie haben auch eine Reihe von Komponenten, die in dieser Liste, die auf diese Weise entweder nicht verteilbar sind, weil sie OS-abhängige Systemkomponenten sind, MDAC-Komponenten, oder nicht für redist (fm20.dll zum Beispiel) lizenziert.

Leider ist dies ein Beispiel für die Art von Paket, das direkt an DLL-Hölle für die Systeme der Benutzer führen kann. bedeutet jede MS Komponente in MS KB Artikel Erforschung dieser Fixierung kann, um zu bestimmen, was kann oder neu verteilt werden soll und wie.

Deployment kann eine schmutzige Angelegenheit sein Recht zu bekommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top