Как выглядит ваше пользовательское действие для ярлыков?

ьзуя WiX 3.5, у меня есть MSI с преобразованиями экземпляров, что позволяет мне устанавливать программное обеспечение на одну и ту же машину с разными названиями продуктов. Для этого у меня есть «жестко запрограммированный» список идентификаторов и имен продуктов в файле .wxs, определенных условно. Однако у меня есть только одно определение Feature-ComponentRef, которое включает как файловые, так и не файловые ресурсы.

Установка работает нормально, но удаление экземпляров демонстрирует поведение, упомянутое в следующих двух источниках:

http://msdn.microsoft.com/en-us/library/aa367797(v=VS.85).aspx

а также

http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Multiple-Instance-Transforms-Walkthrough-Proposed-Simple-Addition-to-WiX-to-Make-Them-Easier-td708828. HTML

В частности, ни один из нефайловых ресурсов (в данном случае записи реестра) не удаляется, кроме самого последнего экземпляра моего приложения. (то есть, если я удалю в следующем порядке: instance1, instance2 и instance3 - удаляются только нефайловые ресурсы instance3.

Я предполагаю, что это связано с отсутствием уникальных GUID для нефайловых компонентов (тогда как для файловых компонентов это не проблема)

Итак, мне было интересно, будет ли правильный подход определять один файл .wxs с одним идентификатором продукта, именем и одним набором функций, но иметь собственный загрузчик, генерирующий новые идентификаторы GUID для продукта и нефайловые компоненты, которые затем вставляются в базу данных MSI во время выполнения? то есть, когда приходит время для удаления или обновления, я запрашиваю реестр для установленных экземпляров и извлекаю их GUID.

Это позволило бы создавать экземпляры во время выполнения, а не жестко задавать их в .wxs заранее, и их можно было удалить без ошибок.

Имеет ли это смысл? Будет ли Burn все лучше? :)

Ответы на вопрос(1)

Ваш ответ на вопрос