Я читал много статей и блогов в Интернете о написании пользовательских действий в Visual Studio, однако подход к тому же не совсем понятен для меня. Мой проект установки находится в C ++. Может кто-нибудь, пожалуйста, пошаговое руководство, как идти о написании пользовательского удаления на C ++.
Мой проект установки создает следующую структуру файлов:
Настроить
—> Input -> file.txt
—> Программа -> PrimaryOutput (Active)
—> Выход
В случае успешного запуска установки файлы создаются в выходной папке, которая остается там во время удаления установки. Как я могу написать собственный деинсталлятор в C ++ для полного удаления всех файлов после деинсталляции.
Изменить: я смог создать шаблон пользовательского действия, как это:
#include "stdafx.h"
extern "C" UINT _stdcall Install(MSIHANDLE hInstall)
{
return ERROR_SUCCESS;
}
extern "C" UINT _stdcall Commit(MSIHANDLE hInstall)
{
return ERROR_SUCCESS;
}
extern "C" UINT _stdcall Rollback(MSIHANDLE hInstall)
{
return ERROR_SUCCESS;
}
extern "C" UINT _stdcall Uninstall(MSIHANDLE hInstall)
{
return ERROR_SUCCESS;
}
Как мне приступить к написанию кода для удаления папки вывода в методе удаления.
Есть это:
http://www.codeproject.com/Articles/570751/DevMSI-An-Example-Cplusplus-MSI-Wix-Deferred-Custo
и VS пользовательские действия откладываются, поэтому он будет работать для вас.
или это:
http://www.codeproject.com/Articles/1747/MSI-Custom-Action-DLL
Вот где вы все равно начинаете.
Если бы вы использовали какой-либо другой инструмент установки, он бы дал вам доступ к функциональности MSI RemoveFile, поэтому не потребовал бы каких-либо специальных действий.
Других решений пока нет …