Verwenden von WiX zum Erstellen eines Installationsprogramms. Als Teil des Installationsprozesses möchte ich ein Excel-Add-In im generischen Excel-Add-In-Ordner (%APPDATA%\Microsoft\AddIns
) installieren. Hier ist der relevante Teil des Codes, die ich geschrieben habe:Verhindern, dass WiX den MS Office AddIns-Ordner bei der Deinstallation löscht
<Directory Id="MicrosoftFolder" Name="Microsoft">
<Directory Id="AddInsFolder" Name="AddIns">
<Component Id="COMP_MyAddInLib" Guid="MY-GUID-HERE">
<File Source="\MyAddInLib.xll" Id="LibMyAddIn" />
<RegistryValue Root="HKCU" Type="string" Key="Software\!(loc.ManufacturerName)\!(loc.ApplicationName)\MyAddIn" Name="INSTALLDIR" Value="[INSTALLDIR]" KeyPath="yes" />
<RemoveFolder Id="RemoveAddInsFolder" On="uninstall" Property="AddInsFolder" />
<RemoveFolder Id="RemoveMicrosoftFolder" On="uninstall" Property="MicrosoftFolder"/>
</Component>
</Directory>
</Directory>
Dies baut richtig und es funktioniert aber, wenn mein Add-In ist das einzige Element in dem %APPDATA%\Microsoft\AddIns
Ordnern des Benutzers, der Add-Ins-Ordner wird gelöscht auf deinstallieren. Ich bin nicht wirklich sicher, ob dies Probleme für Excel (oder eine andere Office-Anwendung) verursachen könnte, aber da dieser Ordner von Office und nicht von meinem Installationsprozess erstellt wird, möchte ich es natürlich vermeiden, ihn zu entfernen.
Ich könnte die zwei <RemoveFolder>
Tags entfernen, aber dann schlägt der Build mit zwei ICE64-Fehler fehl.
Irgendwelche Gedanken darüber, wie ich meine Add-In-Datei entfernen kann, aber die Ordnerstruktur erhalten und den Build-Fehler vermeiden kann?
Beide Antworten sind gut, aber ich mag das, weil ich denke, dass es die sicherste Lösung ist.Ich würde es vorziehen, dass Ordner, die nicht von meinem Installationsprozess erstellt wurden, unverändert bleiben. Ich bin überrascht, dass es keinen besseren eingebauten Mechanismus dafür gibt, aber das Unterdrücken der ICE64-Fehler scheint der beste Weg zu sein. Danke für die Hilfe. –