Используя 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 / множественный экземпляр-преобразование-пошаговое руководство-Simple-Ad-to-WiX-to-Make-Them-Easier-td708828.html
В частности, ни один из файловых ресурсов (в данном случае записи реестра) не удаляется, кроме каксамый последний экземпляр моего приложения.(то есть, если я удаляю в следующем порядке: instance1, instance2 и instance3 - удаляются только не файловые ресурсы instance3.
Я предполагаю, что это связано с отсутствием уникальных GUID для нефайловых компонентов (тогда как это неЭто не проблема для файловых компонентов)
Итак, мне было интересно, будет ли правильный подход определять один файл .wxs с одним идентификатором продукта, именем и одним набором функций, но иметь собственный генерируемый загрузчикновые GUID для продукта и нефайловых компонентов, которые затем вставляются в базу данных MSI во время выполнения, т. е. затем, когда приходит время удалять или обновлять, я запрашиваю реестр для установленных экземпляров и извлекаю их GUID.
Это позволило бы создавать экземпляры во время выполнения, а не жестко прописывать их в .wxs заранее, и удалять их без ошибок.
Имеет ли это смысл? Будет ли Burn все лучше делать?:)