Хорошо, я обнаружил проблему в VS2010 (большое спасибо Cosmin Pirvu) и просто продолжу и поставлю здесь 2 варианта решения, которые я вижу до сих пор. Но сначала проблема:
Как я уже говорил, у меня есть 2 записи:
HKLM \ Software \ MyProduct \ MSI1
HKLM \ Software \ MyProduct \ MSI2
Но в коде они выглядят одинаково, потому что MSI1 и MSI2 являются "заполнителями":
HKLM \ Software \ MyProduct [ProductName]
Итак, имя идентично и свойства идентичны, поэтому мы получаем одинаковый идентификатор компонента для обоих!
Две вещи (насколько я вижу) вы можете сделать:
* * 1010
Вместо [ProductName] введите фактическое название продукта (в жестком коде)
(что я и сделал) В свойстве записи реестра в поле условия введите бессмысленную строку (сделайте ее действительно бессмысленной, чтобы она не соответствовала разумным условиям, я использовал guid с ведущим __).
Спасибо за все ответы