Поэтому я считаю, что лучший способ для меня - это
пусть оригинальный установщик оставит
запись реестра, указывающая каким-либо образом
где установить плагины, и
создать отдельные установщики для
плагины.
Да, я считаю, что это стандартный подход. Ваш основной установщик приложения может оставить запись в реестре о том, где устанавливать плагины, как это:
<Registry Id='WritePluginsLoc'
Root='HKLM'
Key='Software\Acme\Foo 1.x'
Name='PluginsLocation'
Type='string'
Action='write'
Value='[PLUGINSFOLDER]' />
Установщик плагина может затем извлечь запись реестра следующим образом:
<Property Id="PLUGINSFOLDER">
<RegistrySearch Id='PluginsLocationSearch'
Root='HKLM'
Key='Software\Acme\Foo 1.x'
Name='PluginsLocation'
Type='raw' />
</Property>
Для автоматической деинсталляции плагинов вместе с основным продуктом, боюсь, вам придется написать пользовательский exe для удаления. Этот exe-файл должен знать, как найти коды продуктов MSI для плагина, и будет вызывать msiexec /x
для каждого из них.