Ответ 1
Это правильно. Установщик Windows хочет, чтобы ключи реестра являлись ключевыми путями для компонентов для каждого пользователя. Это связано с тем, как профили работают с рекламируемым контентом в корпоративных развертываниях. Исправление очень прямое:
<Directory Id='PersonalFolder' Name='MyDocuments'>
<Component Id='testcomp' Guid='08C288B6-D8E0-4036-9CEB-E5F616AC6B5C'>
<RegistryValue Root='HKCU' Key='Software\Manufacturer\Product'
Name='Something (I like to use InstallFolder)'
Value='Something (I like to use [INSTALLFOLDER]'
KeyPath='yes' />
<File Id='doc_code_file1' Name='doc_code_file1' DiskId='1'
Source='Personalfolder\Visual Studio 2012\Code Snippets\Visual C#\My Code Snippets\SimpleMvvm\mvvmcommand.snippet' />
</Component>
</Directory>
Примечание. Добавленный раздел реестра для каждого пользователя и что он отмечен KeyPath='yes'
. Последнее не является явно необходимым, так как это первый ресурс в Компоненте, который по умолчанию будет помечен как ключевой путь, но иногда лучше указывать путь к ключу.