【问题标题】:Inno Setup "Source file C:\Windows\System32\vcruntime140_1.dll does not exist" errorInno Setup“源文件 C:\Windows\System32\vcruntime140_1.dll 不存在”错误
【发布时间】:2021-03-11 21:20:40
【问题描述】:

我正在尝试使用 Inno Setup 在客户机上安装一些 Visual Studio dll。这是我脚本的[Files] 部分:

[Files]
Source: ...
...
Source: "C:\Windows\System32\msvcp140.dll"; DestDir: "{app}"
Source: "C:\Windows\System32\vcruntime140.dll"; DestDir: "{app}"
Source: "C:\Windows\System32\vcruntime140_1.dll"; DestDir: "{app}"

它在最后一行给了我一个错误,说它找不到源文件,虽然它在那里。是不是和_在Inno Setup中有特效有关?

【问题讨论】:

    标签: windows inno-setup system32


    【解决方案1】:

    在我的 64 位系统上,vcruntime140_1.dll 是真正的 64 位 C:\Windows\System32。 Inno Setup 编译器是一个 32 位的应用程序。由于WOW64 file system redirection,当32 位应用程序尝试访问C:\Windows\System32 时,它会被重定向到C:\Windows\SysWOW64,32 位系统文件所在的位置。没有vcruntime140_1.dll

    正如其他人所评论的那样,这也向您展示了您的方法的弱点。您可能甚至没有意识到 DLL 有多个版本。如果您使用官方Visual C++ Redistributable installer,它将负责将正确的版本安装到正确的位置。虽然你不会。你不应该弄乱System32 文件夹。

    一些例子:

    【讨论】:

    • 另外,vcruntime140d.dll 和 OP 截图中的其他 d 调试 DLL 不可再分发,不应该(需要或)安装,官方软件包不会。
    猜你喜欢
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多