Wix - отслеживание установленных приложений - PullRequest
2 голосов
/ 23 июля 2010

Это кажется довольно простым вопросом, но я не смог найти ответ:

Допустим, у меня есть два продукта: A и B, созданные MyCompany.Оба продукта A и B будут иметь ярлыки в меню «Пуск» следующим образом:

MyCompanyFolder-> Product_A_Folder-> A.exe и MyCompanyFolder-> Product_B_Folder-> B.exe

Если я удалю«Продукт B» Я не хочу, чтобы он удалял «MyCompanyFolder», если это не последний оставшийся продукт.Я бы просто проверил, существует ли «Продукт А» или нет (с помощью поиска компонента или реестра), но я не могу знать, сколько будущих приложений будет добавлено в эту папку.

Единственное решение, которое я придумал, - это создать раздел реестра, который просто содержит целое число, обозначающее количество установленных приложений, - но это выглядит немного не элегантно (не говоря уже о том, что я не знаю, как увеличивать значения реестра в Wix).

Есть мысли?Спасибо.

1 Ответ

3 голосов
/ 23 июля 2010

Вы должны делать что-то необычное в вашей установке, потому что все это должно работать автоматически.Вам не нужно иметь какие-либо компоненты или элементы createfolder для каталога меню «Пуск».Просто создайте ссылку, как показано ниже, и используйте идентификатор ApplicationProgramsFolder в элементе ShortCut для всех установок, и MSI автоматически обработает случай, когда последний из них удалит папку.

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramMenuFolder">
    <Directory Id="CompanyProgramsFolder" Name="ISWIX, LLC">
     <Directory Id="ApplicationProgramsFolder" Name="IsWiX" />
  </Directory>
 </Directory>
</Directory>
...