![](/img/trans.png)
[英]which java version to install Windows x86,Windows x64 so that it will run on both 32 bit and 64 bit
[英]Expand an x86 .exe to 'C:\Windows\System32' under both Windows x86 and x64?
我想使我的安裝程序在x86 / x64 Windows下都兼容,這意味着可移植。
我做了innosetup安裝程序只是為了擴展x86 CLI可執行文件,即使安裝程序在Windows x64下運行,我也需要將其擴展到C:\\ windows \\ system32目錄,因為否則,如果將其擴展到C:\\ Windows \\ syswow64目錄,則在Windows x64 CMD下無法識別exe。
那么,如何設置此屬性以使其在上述指定條件下可移植?
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
在部分部分回答您的問題:
ArchitecturesInstallIn64BitMode
有效值:以下一項或多項,以空格分隔:
x64
ia64
默認值:( 空白)
說明: 指定安裝程序應以64位模式安裝的64位處理器體系結構。 如果未指定此指令或為空白,則安裝程序將始終以32位模式安裝。 通常,除非您的應用程序包含本機64位二進制文件,否則您不應將此指令的默認值更改。
您有x86 exe二進制文件,因此請將該字段留空 。
Source
(必填) 說明: 源文件的名稱。 如果未指定完全限定的路徑名,則編譯器將在安裝源目錄的路徑之前。
例:
Source: "My_x86_application.EXE"
使其不帶任何類似於上面的條目的路徑可能是最佳的(對於小型項目,因為它會使安裝腳本將要部署的文件弄亂了)。 另外,請注意, 只能在 指定 external
標志 時使用常量 ,因為編譯器不會自行進行任何常量轉換。 因此,以下條目:
Source: {sys}\My_x86_application.exe; DestDir: {sys}
實際上希望使用安裝腳本將二進制文件存儲在目錄的{sys}
子文件夾中。 如果不是這樣,則編譯將失敗。
DestDir
(必填) 我想,你可以隨時使用指定System32下 {win}\\System32
。 由於Windows的x86和x64版本都包含System32目錄。
Flags
和進一步的疑問澄清,請訪問此頁面。 編輯:將iss文件保存在x86 exe二進制文件存在的文件夾中。 然后運行它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.