Inno 安装 "Source file C:\Windows\System32\vcruntime140_1.dll does not exist" 错误
Inno Setup "Source file C:\Windows\System32\vcruntime140_1.dll does not exist" error
我正在尝试使用 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的_
有特效有关系吗?
在我的 64 位系统上,vcruntime140_1.dll
是真正的 64 位 C:\Windows\System32
。 Inno Setup 编译器是一个 32 位应用程序。由于 WOW64 file system redirection,当 32 位应用程序尝试访问 C:\Windows\System32
时,它会被重定向到 32 位系统文件所在的 C:\Windows\SysWOW64
。没有vcruntime140_1.dll
.
正如其他人评论的那样,这也表明您的方法存在弱点。您可能甚至没有意识到 DLL 有多个版本。如果您使用官方 Visual C++ Redistributable installer,它将负责将正确的版本安装到正确的位置。而你不会。你不应该弄乱 System32
文件夹。
一些例子:
- How to install Microsoft VC++ redistributables silently in Inno Setup?
- How to make vcredist_x86 reinstall only if not yet installed?
我正在尝试使用 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的_
有特效有关系吗?
在我的 64 位系统上,vcruntime140_1.dll
是真正的 64 位 C:\Windows\System32
。 Inno Setup 编译器是一个 32 位应用程序。由于 WOW64 file system redirection,当 32 位应用程序尝试访问 C:\Windows\System32
时,它会被重定向到 32 位系统文件所在的 C:\Windows\SysWOW64
。没有vcruntime140_1.dll
.
正如其他人评论的那样,这也表明您的方法存在弱点。您可能甚至没有意识到 DLL 有多个版本。如果您使用官方 Visual C++ Redistributable installer,它将负责将正确的版本安装到正确的位置。而你不会。你不应该弄乱 System32
文件夹。
一些例子:
- How to install Microsoft VC++ redistributables silently in Inno Setup?
- How to make vcredist_x86 reinstall only if not yet installed?