gpt4 book ai didi

sql-server - Inno Setup - 尝试安装 NetFx3 功能时出现 "An attempt was made to load a program with an incorrect format"

转载 作者:可可西里 更新时间:2023-11-01 14:18:34 28 4
gpt4 key购买 nike

我正在使用 Inno Setup 编写安装脚本,如果尚未安装 SQL Server 2008 R2 Express,我需要安装它。

因为它需要安装 .NET Framework 3.5 SP1,所以我已经下载并尝试从我的脚本中安装 netfx35.exe。但是我不能直接执行安装,我必须通过“添加角色和功能向导”来完成。为了自动执行,我使用了 Dism,但是当我尝试启用 NetFx3 功能时出现错误。以下是有关我执行的操作的一些信息:

(脚本在Windows 7 Professional SP1 64位下开发,运行在我以管理员身份登录的Windows Server 2008 R2 Standard 64位下。)

第 1 步:确保命令行正确。

在 Windows Server 计算机上,我在 cmd 提示符和批处理文件中都运行了以下命令行,以确保我尝试执行的命令是正确的并且执行正确的工作。

Dism /online /enable-feature /featurename:NetFx3 /NoRestart

结果如我所料,启用了.Net Framework 3.5。

第 2 步:尝试从 Inno Setup 脚本执行相同的命令行。

Exec('Dism', ' /online /enable-feature /featurename:NetFx3 /NoRestart', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
MsgBox(SysErrorMessage(ResultCode), true, MB_OK);

当我编译并执行我的脚本时,出现错误“试图加载格式不正确的程序”。经过一些研究,由于架构(尝试在 64 位模式下运行 32 位应用程序),我发现了类似的情况。因此,我尝试了以下命令:

Dism.exe /online /enable-feature /featurename:NetFx3 /NoRestart
C:\Windows\System32\Dism.exe /online /enable-feature /featurename:NetFx3 /NoRestart
C:\Windows\SysWOW64\Dism.exe /online /enable-feature /featurename:NetFx3 /NoRestart

即使我从 Inno Setup 运行批处理,它也不起作用。我怀疑它来自管理员权限,但在 Inno Setup 函数中 IsAdminLoggedOn 返回 True。

有人可以帮我吗?我不知道该怎么办了。

提前谢谢你。

最佳答案

我找到了解决方案。

DISM 的问题是 Inno Setup 调用了它的 32 位版本,并且由于操作系统是 64 位的而引发了错误。

我刚刚将以下参数添加到设置组:

ArchitecturesInstallIn64BitMode=x64

我不知道它是否有副作用,但在我的情况下它有效。

关于sql-server - Inno Setup - 尝试安装 NetFx3 功能时出现 "An attempt was made to load a program with an incorrect format",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21986988/

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