Inno setup 如何使用Inno安装程序将.sys文件安装到c:\windows\system32\drivers?

Inno setup 如何使用Inno安装程序将.sys文件安装到c:\windows\system32\drivers?,inno-setup,Inno Setup,我试图简单地将一个.sys文件安装到 Source: "C:\myproject\driver.sys"; DestDir: "{win}\system32\drivers"; 安装程序运行后,my driver.sys始终安装到 C:\Windows\SysWOW64\drivers 知道为什么吗?对于Inno Setup等32位应用程序,默认情况下操作系统会将{win}\system32设置为{win}\SysWOW64 您可以使用以下方法覆盖此选项: 64位:在源和DestDir参数

我试图简单地将一个.sys文件安装到

Source: "C:\myproject\driver.sys"; DestDir: "{win}\system32\drivers"; 
安装程序运行后,my driver.sys始终安装到

C:\Windows\SysWOW64\drivers
知道为什么吗?

对于Inno Setup等32位应用程序,默认情况下操作系统会将{win}\system32设置为{win}\SysWOW64

您可以使用以下方法覆盖此选项:

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

或启用安装

在64位模式下:

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

{sys}系统的System32目录

例如:如果对条目使用了{sys}\CTL3D32.DLL,并且系统的Windows系统目录为C:\Windows\system,则安装程序或卸载程序会将其转换为C:\Windows\system\CTL3D32.DLL

在64位Windows上,默认情况下,此常量返回的System32路径映射到包含32位系统文件的目录,就像在32位Windows上一样。这可以通过启用来覆盖

Source: "C:\myproject\driver.sys"; DestDir: "{win}\system32\drivers"; Flags: 64bit 
[Setup]
ArchitecturesInstallIn64BitMode=x64 ia64
Source: "C:\myproject\driver.sys"; DestDir: "{sys}\drivers"