我有一个自定义操作,在安装时运行,这是一个用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结束;
发布于 2015-01-23 13:16:36
没有办法按你的要求去做。在返回非零退出代码之前,您可以从EXE中显示一条消息,但是Windows安装程序仍然会显示错误1722消息。
如果可以从DLL运行函数,则有更多选项。而不是返回错误,您可以设置属性(假设这是一个即时模式操作),并且可以使用这些属性来做进一步的事情,例如显示另一个对话框,或者在没有错误1722消息的情况下退出安装。
https://stackoverflow.com/questions/28106865
复制相似问题