Проект установки Visual Studio 2010 - удаление реестра - PullRequest
0 голосов
/ 28 декабря 2011

У меня есть 2 msi-файла, которые я запускаю без вывода сообщений один за другим из приложения win forms (главный установщик в этом отношении). Оба они настроены на запись в реестр в том же месте, например:

HKLM\Software\MyProduct\MSI1
HKLM\Software\MyProduct\MSI2

Теперь я запускаю удаление в обратном порядке, и когда удаление завершено, MSI1 удаляется из реестра, но MSI2 застрял там ... Можно ли что-то сделать с этим без специальных действий или кодирования?

Ответы [ 2 ]

1 голос
/ 28 декабря 2011

Это происходит потому, что ваши записи реестра используют тот же компонент, что и другой продукт, установленный на компьютере.Например, вы скопировали проект установки существующего продукта и использовали копию для создания MSI для другого продукта.

Чтобы избежать этого, необходимо убедиться, что каждый MSI использует уникальные имена компонентови GUID .Это не легко в проектах установки Visual Studio.Вы можете попробовать отредактировать файл проекта.Если это не работает, лучше начать с нуля с новым проектом установки.

0 голосов
/ 29 декабря 2011

Хорошо, я обнаружил проблему в VS2010 (большое спасибо Cosmin Pirvu) и просто продолжу и поставлю здесь 2 варианта решения, которые я вижу до сих пор. Но сначала проблема:

Как я уже говорил, у меня есть 2 записи: HKLM \ Software \ MyProduct \ MSI1 HKLM \ Software \ MyProduct \ MSI2

Но в коде они выглядят одинаково, потому что MSI1 и MSI2 являются "заполнителями": HKLM \ Software \ MyProduct [ProductName]

Итак, имя идентично и свойства идентичны, поэтому мы получаем одинаковый идентификатор компонента для обоих!

Две вещи (насколько я вижу) вы можете сделать:

* * 1010

Вместо [ProductName] введите фактическое название продукта (в жестком коде)

(что я и сделал) В свойстве записи реестра в поле условия введите бессмысленную строку (сделайте ее действительно бессмысленной, чтобы она не соответствовала разумным условиям, я использовал guid с ведущим __).

Спасибо за все ответы

...