.net core 使用Inno安装程序启动.NET Core安装程序失败,结果代码为2

.net core 使用Inno安装程序启动.NET Core安装程序失败,结果代码为2,.net-core,inno-setup,pascalscript,.net Core,Inno Setup,Pascalscript,我正在尝试使用Inno安装程序构建安装程序。我需要设置.NET Core framework的先决条件安装。到目前为止,我能够检测到.NET核心的存在。但是我在执行安装时遇到了困难 以下是我目前掌握的代码: [文件] 来源:“\\shared\path\dotnet-runtime-3.1.10-win-x64.exe”;DestDir:“{tmp}”\ 标志:deleteafterinstall;安装前:安装框架\ 检查:框架未安装 [守则] 变量 取消而不提示:布尔值; 安装值:基数; 函数

我正在尝试使用Inno安装程序构建安装程序。我需要设置.NET Core framework的先决条件安装。到目前为止,我能够检测到.NET核心的存在。但是我在执行安装时遇到了困难

以下是我目前掌握的代码:

[文件]
来源:“\\shared\path\dotnet-runtime-3.1.10-win-x64.exe”;DestDir:“{tmp}”\
标志:deleteafterinstall;安装前:安装框架\
检查:框架未安装
[守则]
变量
取消而不提示:布尔值;
安装值:基数;
函数InitializeSetup():Boolean;
开始
CancelWithoutPrompt:=false;
结果:=真;
结束;
过程取消按钮单击(CurPageID:Integer;var Cancel,Confirm:Boolean);
开始
如果CurPageID=wpp,则
确认:=无提示不取消;
结束;
函数框架未安装:布尔值;
开始
结果:=非RegQueryWordValue(HKEY_本地_机器,
'SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions\x64\sharedfx\Microsoft.NETCore.App',
“3.1.10”,InstallValue)或(InstallValue 1)
结束;
程序框架;
变量
StatusText:字符串;
结果代码:整数;
开始
StatusText:=WizardForm.StatusLabel.Caption;
WizardForm.StatusLabel.Caption:=“正在安装.net核心框架…”;
WizardForm.ProgressGauge.Style:=npbstMarquee;
尝试
如果不执行(ExpandConstant(“{tmp}\dotnet-runtime-3.1.10-win-x64.exe”)、“/q/norestart”、“SW_SHOW、ewwaitunterminated、ResultCode),则
开始
//您可以与安装失败的用户进行交互
MsgBox(“.NET Core安装失败,代码为“+IntToStr(ResultCode)+”。”,
b错误,b_正常);
CancelWithoutPrompt:=真;
向导窗体。关闭;
结束;
最后
WizardForm.StatusLabel.Caption:=状态文本;
WizardForm.ProgressGauge.Style:=npbstNormal;
结束;
结束;
我从安装中得到结果代码2响应,任何人都可以告诉我代码2错误是关于什么的?或者这是我提取错误信息的进一步细节的方法吗?我尝试了空参数,并试图在互联网上搜索代码2错误信息,但仍然没有成功。 我尝试了Shellexec,但都返回了相同的结果

直接使用.net exe进行的安装在本地运行良好


任何帮助或信息都将非常感谢=)

您在实际将其“安装”到
{tmp}
之前,正在尝试运行
dotnet-runtime-3.1.10-win-x64.exe

BeforeInstall: InstallFramework
您必须使用:


成功了!谢谢
AfterInstall: InstallFramework