【发布时间】:2014-11-24 16:35:11
【问题描述】:
我想让我的安装程序在两个 x86/x64 窗口下兼容,这意味着便携。
我做了 innosetup 安装程序只是为了扩展一个 x86 CLI 可执行文件,我需要将它扩展为 C:\windows\system32 目录,即使安装程序在 Windows x64 下运行,否则如果我将其展开到 C:\Windows\Syswow64 目录,则在 Windows x64 下无法识别 exe CMD。
那么我应该如何设置这个属性以使其在上述指定条件下可移植?:
ArchitecturesInstallIn64BitMode= ???
在此处展开文件时我应该使用哪些标志?:
Source: {sys}\My_x86_application.exe; DestDir: {sys}; Flags: ???
我已经使用了一些标志,例如 32Bit、64Bit 和 Is64BitInstallMode,但我无法得到预期的结果,因为如果我知道 {syswow64} 的受限常量会引发安装Windows x86 下的错误...
更新
这是我的安装脚本的相关部分,但是错了,应该兼容x86和x64 windows(便携),只将Source: {sys}\*文件展开到C:\Windows\System32 在两个窗口下(当然使用常量{sys} 来检测目录路径)。
[Setup]
DefaultDirName={pf32}\{#AppName}
ArchitecturesAllowed=x86 x64
ArchitecturesInstallIn64BitMode=x64
[Files]
Source: {app}\*; DestDir: {app}; Flags: ignoreversion
Source: {sys}\*; DestDir: {sys}; Flags: ignoreversion 64bit
【问题讨论】:
-
但是...为什么我收到两个反对票?,我认为我的问题结构良好,并且提供了帮助者所需的所有信息。无缘无故的讨厌……
-
您确定要将 32 位应用程序安装到 64 位系统文件夹中吗?我看到 64 位命令提示符看不到它,但这就是 32 位命令提示符的用途。 [也不要投反对票; ++]
-
是的@TLama 我完全确定我想做什么,因为有两个原因:1)如你所知
System32和SysWow64例如Program Files(x86)和Program Files是目录正确安装和区分同一应用程序的不同架构,但由于我的应用程序只有 x86(我没有与 x64 相同的应用程序)我不能在System32目录中安装它时遇到任何冲突,那么我应该不用担心我选择安装我的 exe 的两个目录的位置,但问题来了 2) -
2) CMD 无法识别 exe 如果我将它安装到
Syswow64中(我的PATH环境变量是正确的默认值),我只需要将它安装在@987654337 中@ dir。感谢您的评论,对不起我的英语。 -
syswow64 中有很多 32 位的可执行文件,它们都可以工作。
标签: windows installation system inno-setup