Inno setup 安装到{sys}的文件/DLL未出现在C:\Windows\system32中

Inno setup 安装到{sys}的文件/DLL未出现在C:\Windows\system32中,inno-setup,Inno Setup,我不知道为什么,但当我尝试将文件从安装目录复制到system32时,虽然在Inno安装程序中读取为已成功安装,但却失败了。这是我的密码: [Files] ; specifies what files will be included in the installation Source: "{src}\..\elt.properties"; DestDir: "C:\elt"; Flags: ignoreversion; BeforeInstall: SetProgressMax(10)

我不知道为什么,但当我尝试将文件从安装目录复制到
system32
时,虽然在Inno安装程序中读取为已成功安装,但却失败了。这是我的密码:

[Files]
; specifies what files will be included in the installation
Source: "{src}\..\elt.properties"; DestDir: "C:\elt"; Flags: ignoreversion;     BeforeInstall: SetProgressMax(10); 
Source: "{src}\..\msvcr120.dll"; DestDir: {sys}; Flags: onlyifdoesntexist; 
我还想包括我的日志输出,因为我觉得奇怪的是,文件的时间这么短,我在2016年7月8日上午11点左右写这篇文章

[11:49:36.526]   -- File entry --
[11:49:36.528]   Dest filename: C:\Windows\system32\msvcr120.dll
[11:49:36.529]   Time stamp of our file: 2013-10-04 23:58:24.000
[11:49:36.530]   Installing the file.
[11:49:36.566]   Successfully installed the file.

默认情况下,操作系统将
{sys}
system32
)转换为
{win}\SysWOW64
,用于32位应用程序(如Inno Setup)

如果您的DLL是32位的,那么实际上您需要重定向。SysWOW64是Windows 64位上的Windows 32位仿真的等效系统。另见


如果不希望重定向(因为DLL是64位的),可以使用以下命令覆盖重定向:

64位:使
{sys}
常量在
DestDir
参数中使用时映射到64位系统目录。。。。这是安装中的默认行为


或启用安装

在64位模式下:

  • 当在[Dirs]、[Files]、[InstallDelete]、[Run]、[UninstallDelete]和[UninstallRun]节中使用时,
    {sys}
    常量返回的System32路径默认映射到64位系统目录。这是因为当这些部分访问文件/目录时,安装/卸载会临时禁用。在其他地方,System32和
    {sys}
    映射到32位系统目录,这在32位进程中是正常的

如果应用程序也是64位的,则应启用64位模式。否则,请使用其他两个选项之一。
Source: "..."; DestDir: "{sys}"; Flags: 64bit 
[Setup]
ArchitecturesInstallIn64BitMode=x64 ia64