Деинсталлятор не удаляет скопированную библиотеку в системную папку в проекте установки VS2010.

У меня есть приложение для рабочего стола Windows. Я готовлю MSI с помощью проекта Microsoft Visual Studio 2010. Для моей цели мне нужно скопировать определенную DLL в системную папку во время установки. Когда я запускаю программу удаления после завершения установки, она не удаляет эту библиотеку из системной папки.

Есть ли способ сделать это?

Вот мой UnInstaller.cpp

int _tmain(int argc, _TCHAR* argv[])
{
//WinExec("msiexec.exe /i {B49233F8-814D-432F-BE05-D6BA334A0087}", SW_SHOW);
WinExec("msiexec.exe /i {050E4942-5DF2-4F46-B6BC-1296761DA4C1}", SW_SHOW);
}

0

Решение

Если вы когда-либо отметили свойства этого файла в настройках как Permanent или SharedLegacyFile и установили его, он не будет удален. Они не являются настройками, которые вы можете изменить в проекте, и ожидайте, что они изменятся в системе, потому что система пометит их как не удаляемые. Если вы посмотрите, например, в HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ SharedDlls и там указан путь к вашему файлу, то вы без необходимости отметили его как общий.

2

Другие решения

В рекомендациях установщика Windows говорится, что следует избегать установки общих ресурсов в папки windows / system и что при необходимости они должны быть помечены как постоянные.

1

По вопросам рекламы [email protected]