Frage

Ich habe einen PRQ, der MS SQL Shared Management-Objekte installiert. Ich habe einen Zustand, der den PRQ installiert, wenn dieser Registrierungsschlüssel nicht existiert

generasacodicetagpre.

Dies funktioniert gut, bis ein Benutzer SMO mit einem anderen Produktcode installiert hat - dies passiert mit unserem Dev-Team die ganze Zeit, wenn sie SQL2008 installieren. Das Installationsprogramm Die PRQ-Starts existiert mit einem Fehler.

Ich brauche einen besseren Zustand. Was ich gerne tun würde, ist: If (Version <= w.x.y.z || Keine Version gefunden) Dann installieren Sie PRQ

im installshield-Vorausgeber-Editor es heißt

Die folgenden Bedingungen müssen für die Voraussetzung erfüllt sein, um zu laufen. Hier können Sie Dateien und Registrierungsschlüssel definieren, die der Voraussetzer wird Suchen Sie, um festzustellen, ob es ausgeführt werden soll. Wenn es keine gibt Bedingungen, die Voraussetzung wird immer laufen.

Dies stimmt mit meinen Erkenntnissen zu - die Bedingungen sind zusammen und zusammen. Gibt es ein paar unveröffentlichte Sauce, um die Bedingungen in der XML oder zu negieren? Ich bin gerade sehr ärgerlich, weil ich einen PRQ ausführen möchte, wenn die Version in der Registrierung in der Registrierung generasacodicetagpre.

type="32" ist 'Ein Registrierungseintrag hat einen bestimmten Versionswert' Vergleich="2" ist 'Daten zum Zielsystem sind weniger als angegebene Daten'

Seitenfrage: Gibt es einen Ort, an dem die Typen und Vergleiche aufzulagert sind?

Dieser Vergleichstyp hat keinen Vergleich mit dem Vergleich an staatliche Daten auf dem Zielsystem ist weniger als angegebene Daten oder existiert nicht '. Wenn jetzt, wenn der Schlüssel an einer niedrigeren Version ist, funktioniert, aber wenn der Schlüssel nicht vorhanden ist (d. H. Smo ist nicht installiert), ist der PRQ nicht installiert.

Gibt es eine Möglichkeit, diese Arbeit zu machen? Die 'A-Datei mit bestimmter Version besteht existiert über eine, wenn die Version der Datei geringer ist als die oben angegebene Version (oder die Datei wird nicht auf dem Zielsystem gefunden). Es funktioniert jedoch nicht, um eine von SMO installierte Datei zu überprüfen. Der Benutzer kann es möglicherweise an ein anderes Antrieb als C:.

installiert haben.

Ich hoffe, dass ich etwas vermisse. Was würdest du tun?

War es hilfreich?

Lösung

Was ich typischerweise tue, wird nicht abstrakte Dinge wie ARP-Einträge verwendet, um die Abhängigkeit zu erkennen.Ich gehe für die Abhängigkeit selbst.Wenn Sie eine DLL benötigen, schauen Sie an, um zu sehen, ob die DLL vorhanden ist, anstatt sich zu sorgen, etwas zu erkennen, was die DLL installiert hätte.

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