Каталог NN находится в профиле пользователя, но не указан в таблице RemoveFile
Когда я пытаюсь создать установщик, я получаю следующую ошибку:
Каталог ProgramMenuDir
находится в профиле пользователя, но не указан в RemoveFile
Таблица.
Как мне решить эту проблему? Ниже приведена структура каталогов, которую я использую:
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="ProgramMenuDir" Name="E">
<Directory Id="Monarch" Name="Monarch">
<Component Id="Monarch" Guid="*">
<RemoveFolder Id='Monarch' On='uninstall' />
<RemoveFolder Id='ProgramMenuDir' On='uninstall' />
<RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]'
Type='string' Value='' KeyPath='yes' />
</Component>
</Directory>
</Directory>
</Directory>
3 ответа
Насколько я вижу, проблема заключается в использовании <RemoveFolder/>
элемент. Если атрибут "Directory" опущен, он принимает каталог родительского компонента. В вашем случае это каталог с Id="EFIMonarch". Это объясняет, почему вы получаете предупреждение для внешнего каталога (ProgramMenuDir), но не получаете его для каталога EFIMonarch.
Попробуйте заменить:
<RemoveFolder Id='ProgramMenuDir' On='uninstall' />
с
<RemoveFolder Id='RemoveProgramMenuDir' Directory='ProgramMenuDir' On='uninstall' />
Кроме того, это хорошая идея, чтобы быть явным для каждого элемента RemoveFolder.
Надеюсь это поможет.
Если другие ответы по-прежнему не работают, попробуйте проверить Suppress ICE validation
вариант, Visual Studio проигнорирует эти проверки, просто следуйте этому маршруту:
YourProject
-> Properties
-> Tool Settings
https://stackru.com/images/523812315e24ac0f06ba8e460e81fe2aca4a8dc7.png=125
Просто напишите это для некоторых других, которые могут по-прежнему испытывать эту проблему, даже после ответа на этот вопрос.
У меня была та же проблема, и даже после того, как явное указание Directory в RemoveFolder мне не помогло, я попытался поместить этот DirectoryRef, содержащий ярлык установки / удаления, сразу после TARGETDIR в тот же фрагмент, и это помогло исправить мою проблему.
Если следующий ответ все еще не работает. Попробуйте перезагрузить визуальную студию.