我已經在Visual Studio中編寫自定義操作的過程中在線閱讀了許多文章和博客,但執行此操作的方法並不完全清晰對我來說。我的安裝項目是用C++編寫的。任何人都可以請逐步指導如何去寫一個自定義的卸載程序在C++中。如何使用C++編寫自定義卸載程序代碼以刪除Visual Studio 2008中的用戶生成文件
我的設置項目創建下列文件結構:
設置
- >輸入 - > 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;
}
我應該如何着手編寫代碼的卸載方法刪除輸出文件夾。
如果卸載程序只需要刪除一些目錄或文件,您可以使用一些系統調用。看看https://stackoverflow.com/questions/2256945/removing-a-non-empty-directory-programmatically-in-c-or-c – knightrider
這通常是一個有問題的想法,因爲Windows是多用戶的。用戶生成的文件可能由多個不同的用戶擁有,其中沒有一個是執行卸載程序的管理員。對於由單個非管理員用戶安裝的應用程序(即,在「Program Files」之外)的思想_is_有效 – MSalters