2010-07-23 4 views
2

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

Скажем, у меня есть два продукта: A и B, созданный MyCompany. Оба изделия А и В будут иметь ярлыки в меню Пуск таким образом:

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

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

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

Любые мысли? Спасибо.

ответ

3

Вы должны делать что-то необычное в своей установке, потому что все это должно работать автоматически. Вам не нужно иметь какие-либо компоненты или создавать элементы-каталоги для вашего каталога в главном меню. Просто создайте ссылку, как показано ниже, и используйте Идентификатор 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> 
+0

Да, я просто понял, что это поведение по умолчанию. Я не нашел нигде, что это указывало. Благодаря! – Chris