gpt4 book ai didi

c# - 关于自定义操作 Installshield 失败的自定义消息

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:06 27 4
gpt4 key购买 nike

我有一个在安装时运行的自定义操作,它是一个用 C# 编写的 exe。此 exe 向用户授予对特定文件夹的权限,如果此任务失败,则安装继续没有用处。我需要它回滚,但只有在显示适当的错误消息之后。

现在我尝试的是以下内容

  1. 编辑 exe 以更新注册表中的条目以指示其执行是成功还是失败。
  2. 添加了第二个自定义操作来读取注册表并显示错误消息。这是一个安装脚本。

我的需求

在从注册表中读取失败条目时回滚安装。

我写的脚本

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

结束;

最佳答案

没有办法按照你的要求去做。您可以在返回非零退出代码之前显示来自 EXE 的消息,但 Windows Installer 仍会显示错误 1722 消息。

如果您可以改为从 DLL 运行函数,则您有更多选择。您可以设置属性(假设这是一个即时模式操作),而不是返回错误,并且可以使用这些属性做更多的事情,例如显示另一个对话框,或者在没有错误 1722 消息的情况下退出安装。

来源:Old answer to similar problem

关于c# - 关于自定义操作 Installshield 失败的自定义消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28106865/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com