Installation 在Inno安装程序中执行卸载字符串

Installation 在Inno安装程序中执行卸载字符串,installation,inno-setup,uninstallation,uninstallstring,Installation,Inno Setup,Uninstallation,Uninstallstring,我的要求是在安装和卸载以前的版本之前,检查SQL native Client 11的以前安装。我已经能够检查以前的安装没有问题,但是,我无法卸载相同的 我使用了报告中提到的解决方案 在运行时,我遇到以下错误 异常:内部错误:未知常量“A22EED3F-6DB6-4987-8023-6C6B7030E554” (其中常量是本机客户端的GUID)在执行该行期间 Exec(ExpandConstant(sunstallstring),“”,”,SW_SHOW,ewwaitunfiltered,iRes

我的要求是在安装和卸载以前的版本之前,检查SQL native Client 11的以前安装。我已经能够检查以前的安装没有问题,但是,我无法卸载相同的

我使用了报告中提到的解决方案

在运行时,我遇到以下错误

异常:内部错误:未知常量“A22EED3F-6DB6-4987-8023-6C6B7030E554”

(其中常量是本机客户端的GUID)在执行该行期间

Exec(ExpandConstant(sunstallstring),“”,”,SW_SHOW,ewwaitunfiltered,iResultCode);
sunstallString

MsiExec.exe /I{A22EED3F-6DB6-4987-8023-6C6B7030E554}
提前感谢。

这不是(Inno设置)常量。那是一个GUID。删除
ExpandConstant
调用

您需要将卸载字符串拆分为程序路径及其参数

var
P:整数;
卸载路径:字符串;
卸载参数:字符串;
开始
{ ... }
{如果程序路径被引用,因为它包含空格。}
{(你的情况不是这样,但总的来说是可以的)}
如果Copy(sunstallstring,1,1)='“,则
开始
删除(sunstallstring,1,1);
P:=Pos(“”,sunstallString);
结束
否则P:=0;
如果P=0,则
开始
P:=位置(“”,sUnInstallString);
结束;
卸载路径:=复制(sunstallstring,1,P-1);
UninstallParams:=TrimLeft(复制(sunstallstring,P+1,长度(sunstallstring)-P));
Exec(卸载路径、卸载参数、软件显示、WWAITUNILTERMINATED、iResultCode);
{ ... }
结束;

在卸载向导中,我有三个选项:修改、修复、删除。是否有任何参数可用于在“Exec”功能中选择删除并继续卸载。我尝试了“/SILENT”,但似乎不起作用。这是
MsiExec
上的一些隐藏功能。我一直无法弄清楚它是如何工作的。试着问一个新问题。有人会知道的。