Ich benutze angepasste UI, die in einer Reihe von verschiedenen Ansichten wie installview, progressview, finishview, uninstallview usw. funktioniert. Im benutzerdefinierten Installer gibt es zwei Möglichkeiten, die man ändern kann Installationsverzeichnis und anderes, um das Datenbankverzeichnis zu ändern. Mein benutzerdefiniertes Installationsprogramm enthält zwei MSI. Immer wenn ich versuchte, das Datenbankverzeichnis an die MSI zu übergeben, wird es nicht übersteuert. Es nimmt immer den Standardpfad ein.Wix ist nicht erlaubt den Benutzer das Verzeichnis zu überschreiben
Mein benutzerdefiniertes Installationsprogramm enthält eine Variable für die Datenbank, die überfällig ist, und übergibt den Wert an die msi.
<Variable Name="DatabaseFolder" bal:Overridable="yes" Type="string" Value="[CommonAppDataFolder]$(var.ManufacturerName)\$(var.ProductName)" />
<MsiPackage Id="StorageApp"
DisplayInternalUI="no"
DisplayName="$(var.StorageApp)"
Permanent="no"
Visible="yes"
Vital="yes"
SourceFile="$(var.StorageAppExe)"
Compressed="yes">
<MsiProperty Name="DATABASEAPPDATAFOLDER" Value="[DatabaseFolder]" />
</MsiPackage>
Standardmäßig wird DatabaseProductName als Verzeichnisname verwendet. Aber wenn ich das Verzeichnis änderte, nahm es immer den Standardpfad. Warum ich den Standardwert nicht überschreiten konnte. Fehlt etwas in meinem Code?
<DirectoryRef Id="TARGETDIR">
<Directory Id="CommonAppDataFolder">
<Directory Id="CompanyAppDataFolder" Name="$(var.DatabaseManufacturerName)">
<Directory Id="DATABASEAPPDATAFOLDER" Name="$(var.DatabaseProductName)">
</Directory>
</Directory>
</Directory>
</DirectoryRef>