ฉันต้องการให้โปรแกรมติดตั้งของฉันใช้งานได้ทั้งบนหน้าต่าง x86/x64 ซึ่งหมายความว่าพกพาได้
ฉันติดตั้ง innosetup เพื่อขยายไฟล์ปฏิบัติการ x86 CLI เท่านั้น และฉันต้องขยายเป็นไดเรกทอรี C:\windows\system32 ด้วยซ้ำ หากตัวติดตั้งทำงานภายใต้ Windows x64 เพราะไม่เช่นนั้นหากฉันขยายไปยังไดเร็กทอรี C:\Windows\Syswow64 แสดงว่า exe ไม่ได้รับการยอมรับภายใต้ Windows x64 ซีเอ็มดี.
ดังนั้นฉันควรตั้งค่าคุณสมบัตินี้เพื่อให้พกพาได้ตามเงื่อนไขที่ระบุข้างต้นอย่างไร:
ArchitecturesInstallIn64BitMode= ???
และฉันควรใช้แฟล็กใดเมื่อขยายไฟล์ที่นี่:
Source: {sys}\My_x86_application.exe; DestDir: {sys}; Flags: ???
ฉันเคยเล่นมาบ้างเล็กน้อยกับแฟล็กบางตัว เช่น 32Bit
, 64Bit
และ Is64BitInstallMode
แต่ฉันไม่สามารถได้ผลลัพธ์ตามที่คาดหวัง เพราะถ้าฉันรู้ว่าค่าคงที่ที่ถูกจำกัดเป็น {syswow64}
จะทำให้เกิดข้อผิดพลาดในการติดตั้งภายใต้ Windows x86...
อัปเดต
นี่เป็นส่วนที่เกี่ยวข้องของสคริปต์การติดตั้งของฉัน แต่มันผิด มันควรจะเข้ากันได้กับ windows x86 และ x64 (พกพา) และขยายเฉพาะไฟล์ Source: {sys}\*
เป็น C:\Windows\System32 ใต้ทั้งสองหน้าต่าง (ใช้ค่าคงที่ {sys}
เพื่อตรวจจับเส้นทาง dir แน่นอน)
[Setup]
DefaultDirName={pf32}\{#AppName}
ArchitecturesAllowed=x86 x64
ArchitecturesInstallIn64BitMode=x64
[Files]
Source: {app}\*; DestDir: {app}; Flags: ignoreversion
Source: {sys}\*; DestDir: {sys}; Flags: ignoreversion 64bit
System32
และSysWow64
เช่นProgram Files(x86)
และProgram Files
เป็นสิ่งที่ต้องติดตั้งอย่างเหมาะสมและแยกแยะสถาปัตยกรรมที่แตกต่างกันของแอปเดียวกัน แต่เนื่องจากแอปของฉันคือ เพียง x86 เท่านั้น (ฉันไม่มีแอปเดียวกันกับ x64) ฉันไม่สามารถประสบปัญหาใด ๆ ในการติดตั้งในSystem32
dir ได้ ดังนั้นฉันไม่ควรกังวลว่าไดเรกทอรีทั้งสองที่ฉันเลือกติดตั้ง exe อยู่ที่ใด แต่ที่นี่มาถึงแล้ว ปัญหา 2) - person ElektroStudios   schedule 25.11.2014Syswow64
(ตัวแปรสภาพแวดล้อมPATH
ของฉันถูกต้องตามค่าเริ่มต้น) ฉันแค่ต้องติดตั้งมันในSystem32
dir ขอบคุณสำหรับความคิดเห็นและขออภัยสำหรับภาษาอังกฤษของฉัน - person ElektroStudios   schedule 25.11.2014[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\app.exe] @="C:\\app.exe"
หากใช้งานได้จริงและฉันพลาดไป บางสิ่งบางอย่างโปรดเขียนคำตอบหากงานนี้ฉันจะทำเครื่องหมายว่ายอมรับ ขอบคุณสำหรับความช่วยเหลือของคุณ - person ElektroStudios   schedule 27.11.2014