Ich habe Probleme, die Reihenfolge der Betrieb des WiX-Setups zu verstehen.
Wenn Sie versuchen, einen Registrierungsschlüssel zum Hinzufügen eines Menüeintrags zum Windows Explorer-Kontextmenü und simultan mit CustomActions zu erstellen, wird der Registrierungsschlüssel nicht hinzugefügt.
Wenn ich jedoch nur versuche, den Schlüssel zu registrieren, funktioniert es (jeder CustomAction-Code ist auskommentiert).WiX Setup erstellt einen Registrierungsschlüssel funktioniert nicht, wenn auch CustomActions
In meinem Product.wxs Ich habe erhöhte priviliges Set mit
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated"/>
. In meinem<Feature>
habe ich<ComponentRef Id="RegistryEntries"/>
referenziert.Dies ist der Code für den Registrierungsschlüssel
<Fragment> <Directory Id="TARGETDIR" Name="SourceDir"> <Component Id="RegistryEntries" Guid="*"> <RegistryKey Root="HKCR" Key="Excel.CSV\shell\Use MyConverter\command" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes"> <RegistryValue Type="string" Value="[INSTALLLOCATION]$(var.SolutionName).exe %1" KeyPath="yes"/> </RegistryKey> </Component> <Directory Id="ProgramFilesFolder"> <Directory Id="HSZLG" Name="MyConverter"> <Directory Id="INSTALLLOCATION" Name="$(var.SolutionName)" /> </Directory> </Directory> <!--<Directory Id="ProgramMenuFolder"> <Directory Id="Shortcuts" Name="MyConverter" /> </Directory>--> </Directory> </Fragment>
Im jetzt auch mit den folgenden benutzerdefinierten Aktionen zu erstellen:
<CustomAction Id="UnregisterImportFormat" BinaryKey="WixCustomAction" DllEntry="UnregisterImportDefinition" Execute="deferred" Impersonate="no" Return="check" /> <CustomAction Id="PropertiesForUnregisterImportFormat" Property="UnregisterImportFormat" Return="check" Value="app=AB;key=10000P1000" />
und sie in der
<InstallSequence>
wie folgt aufrufen:<InstallExecuteSequence> <Custom Action="PropertiesForRegisterImportFormat" Before="RegisterImportFormat" /> <Custom Action="RegisterImportFormat" Before="InstallFinalize">(NOT Installed) OR REINSTALL</Custom> <Custom Action="PropertiesForUnregisterImportFormat" Before="UnregisterImportFormat" /> <Custom Action="UnregisterImportFormat" Before="InstallFinalize">REMOVE</Custom> </InstallExecuteSequence>
Es würde mich freuen, wenn jemand darauf hinweisen könnte, was ich hier falsch mache.
Dies ist auf meiner erforderlichen Leseliste: http://www.installsite.org/pages/en/isnews/200108/index.htm –