Lassen Sie mich zuerst definieren, was ich meine, indem ich Privateigentum sage. Normalerweise können Eigenschaften, wie mit Hilfe von Skripten wie folgt eingestellt werden:Definieren von privaten Eigenschaften in Wix Installer
<Property Id="CHECKREGISTRY">
<RegistrySearch Id="CheckRegistryKey"
Root="HKLM"
Key="SOFTWARE\Foo"
Name="Bar"
Type="raw" />
</Property>
<Condition Message="You don't have the required permission to install this tool.">
<![CDATA[Installed OR CHECKREGISTRY]]>
</Condition>
Aber das Problem ist, dass Sie diese Prüfung einfach durch Ausführen eines Skripts wie folgt umgehen:
msiexec.exe /i FooInstaller.msi /quiet CHECKREGISTRY="#1"
und das ist gegen die sehr erste Idee, dass Sie den Registrierungsschlüssel haben sollten, um zu tun, was Sie tun möchten.
Wie Sie sehen, würde eine private Eigenschaft - falls vorhanden - dies verhindern und es ermöglichen, nur innerhalb des MSI-Installationsprogramms selbst festlegen zu können.
Ich dachte nach CustomAction
Route gehen, aber für eine sehr einfache Sache, es ist übermäßig kompliziert. Gibt es eine einfache Lösung für dieses Problem oder wie können wir private Eigenschaften überhaupt definieren?
Danke. Zumindest wird dadurch verhindert, dass sie Teil anderer Skripte und Installer sind. Ich bin froh, dass wir diese Option haben. Danke vielmals! – Tarik
Das Problem ist jetzt: "Fehler CNDL0012: Der Wert der Eigenschaft/@ Id-Attribut 'checkRegistry' darf keine Kleinbuchstaben enthalten. Da dies eine Sucheigenschaft ist, muss es auch eine öffentliche Eigenschaft sein. Dies bedeutet den Property/@ Id-Wert muss vollständig aus Großbuchstaben bestehen. (32) " – Tarik
Rechts. 'Sie können AppSearch jedoch nicht verwenden, um private Eigenschaften festzulegen. –