我有一个自定义操作,在安装时运行,这是一个用C#编写的exe。此exe授予用户对特定文件夹的权限,如果此任务失败,则无法继续安装。我需要它回滚,但只有在显示相应的错误消息后才会回滚。
现在我尝试的是以下
我的需要
在从注册表中读取失败条目时回滚安装。
我写的脚本
function CheckRegistry(hMSI)
STRING keyValue;
NUMBER nType, nSize;
开始
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
if (RegDBGetKeyValueEx ("CSVExtraction", "AccessGranted", nType, keyValue,nSize) < 0) then
MessageBox ("RegDBGetKeyValueEx failed.", SEVERE);
abort;
else
if(keyValue != "true") then
MessageBox("Granting access to the Installation Folder failed; Hence exiting installation",SEVERE);
abort;
endif
endif
端;
答案 0 :(得分:1)
没有办法按你的要求做。您可以在返回非零退出代码之前显示来自EXE的消息,但Windows Installer仍会显示错误1722消息。
如果您可以改为从DLL运行函数,则可以选择更多选项。您可以设置属性(假设这是一个立即模式操作),而不是返回错误,并且可以使用这些属性执行更多操作,例如显示另一个对话框,或退出安装而不显示错误1722消息