如何使用 C++ 编写自定义卸载程序代码以删除 Visual Studio 2008 中用户生成的文件

How to write a custom uninstaller code in C++ for deleting user generated files in Visual Studio 2008

我在网上阅读了很多关于在 Visual Studio 中编写自定义操作的文章和博客,但是我完全不清楚实现相同操作的方法。我的安装项目是在 C++ 中。任何人都可以逐步指导如何使用 C++ 编写自定义卸载程序。

我的安装项目创建了以下文件结构:

设置

-->输入-->file.txt

-->程序-->PrimaryOutput(活动)

-->输出

安装成功 运行 后,将在输出文件夹中创建文件,该文件夹在安装卸载期间保留在那里。如何在 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;
}

我应该如何继续编写用于在 Uninstall 方法中删除 Output 文件夹的代码。

有这个: 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 功能,因此不需要任何类型的自定义操作。