Bir yükleyici oluşturmak için WiX kullanma. Yükleme işleminin bir parçası olarak, bir Excel Eklentisi'ni genel Excel Eklentileri klasörüne (%APPDATA%\Microsoft\AddIns
) yüklemek istiyorum. Benim eklenti kullanıcının %APPDATA%\Microsoft\AddIns
klasöründe yalnızca madde iseYüklemeyi kaldırmak için WiX'in MS Office Eklentileri klasörünü silmesini önleyin.
<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>
Bu düzgün oluşturur ve bu işi yapar ama, AddIns klasör üzerinde silinir: İşte yazdım kod ilgili kısmıdır kaldırma. Excel'in (veya başka bir Office uygulamasında) sorunlara neden olabileceğinden emin değilim, ancak bu klasör Office tarafından oluşturulduğundan ve benim yükleme işlemimden dolayı, onu kaldırmaktan kaçınmak istiyorum.
İki <RemoveFolder>
etiketini kaldırabilirim ancak daha sonra yapı iki ICE64 hatasıyla başarısız oluyor.
Eklenti dosyamı nasıl kaldıracağım, ancak klasör yapısını nasıl koruyabileceğimi ve yapının başarısız olmasından nasıl kurtulabileceğime dair herhangi bir fikrin var mı? Muhtemelen klasör silinir sonra çalıştığından emin olmak için, belki sadece InstallFinalize önce, sonuna doğru planlamak istiyorum
ExeCommand="cmd /C \"mkdir %APPDATA%\Microsoft\AddIns\""
:
Her iki cevap da iyidir, ancak bunun en güvenli çözüm olduğunu düşündüğümden hoşlanıyorum.Kurulum sürecime dokunulmayan/sahiplenmeyen klasörleri bırakmayı tercih ederim. Bunun için daha iyi bir yerleşik mekanizmanın olmadığını, ancak ICE64 hatalarının bastırılmasının en iyi yol gibi görüneceğine şaşırdım. Yardım için teşekkürler. –