โปรแกรมติดตั้ง Inno Setup ที่รันชุดโปรแกรมติดตั้งแบบฝังเท่านั้น

Jan 08 2021

ฉันกำลังสร้างตัวติดตั้งใน Inno Setup ซึ่งจะเรียกใช้ชุดโปรแกรมติดตั้งแบบฝังเท่านั้น ไม่ได้ติดตั้งไฟล์ใด ๆ ด้วยตัวเอง

เมื่อรวบรวมโปรแกรมติดตั้งฉันได้รับข้อผิดพลาดนี้:

คุณต้องป้อนเส้นทางแบบเต็มพร้อมอักษรระบุไดรฟ์ ตัวอย่างเช่น C: \ APP หรือเส้นทาง UNC เช่น \ server \ share

ด้านล่างนี้เป็นรหัสของฉัน แต่ฉันได้เปลี่ยนข้อมูล บริษัท เพื่อเป็นข้อมูลการทดสอบ ฉันมีเส้นทาง UNC แบบเต็มดังนั้นฉันจึงไม่แน่ใจว่าเหตุใดฉันจึงได้รับข้อผิดพลาดนี้ ในระหว่างขั้นตอนนี้จะมีการป้อนข้อมูลรับรองสำหรับสถานที่ตั้งอย่างไร

[Setup]
AppName=DRsetup
AppVerName=DRsetup
DefaultDirName=C:\
OutputDir=.
OutputBaseFilename=DRsetup
DisableDirPage=yes
DisableFinishedPage=yes
Uninstallable=no

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[TASKS]
Name: MapDrives; "Description: Map the network drives"; \
    GroupDescription: "Application Selection:"; 
Flags: unchecked exclusive;
Name: Test; Description: "Test"; GroupDescription: "Application                         
selection:"; Flags: unchecked exclusive;
Name: Test2; Description: "Test2"; GroupDescription: "Application selection:"; \
    Flags: unchecked exclusive;
Name: Test3; Description: "Test3"; GroupDescription: "Application         
selection:"; Flags: unchecked exclusive;
Name: Test4; Description: "Test4"; GroupDescription: "Application selection:"; 
Flags: unchecked exclusive;
Name: Test5; Description: "Test5"; GroupDescription: "Application selection:"; \
    Flags: unchecked exclusive;
Name: Test6; Description: "Test6"; GroupDescription: "Application selection:"; 
Flags: unchecked exclusive;
Name: Test7; Description: "Test7"; GroupDescription: "Application selection:"; \
    Flags: unchecked exclusive

[Files]
Filename: {sys}\net.exe; \
     Parameters: "use I: \\Test\PUB /user:administrator /PERSISTENT:YES"; \
     Tasks: MapDrives;
Filename: {sys}\net.exe; \
    Parameters: "use H: \\Test\SYS /user:administrator /PERSISTENT:YES"; \
    Tasks: MapDrives;
Source: "\\Test\PUB\Install\Test.exe"; DestDir: "{app}"; Flags: 
ignoreversion; Languages: english; Tasks: Test
Source: "\\Test\PUB\Install\Test2.exe"; DestDir: "{app}"; Flags: ignoreversion; 
Languages: english; Tasks: Test2;
Source: "\\Test\PUB\Install\Test3.msi"; DestDir: "{app}"; Flags:         
ignoreversion; Languages: english; Tasks: Test3;
Source: "\\Test\PUB\Install\Test4.msi"; DestDir: "{app}"; Flags: 
ignoreversion; Languages: english; Tasks: Test4;
Source: "\\Test\PUB\Install\Test5.msi"; DestDir: "        
{app}"; Flags: ignoreversion; Languages: english; Tasks: Test5;
Source: "\\Test\PUB\Install\Test6.exe"; DestDir: "{app}"; Flags: 
ignoreversion; Languages: english; Tasks: Test6;
Source: "\\Test\PUB\Install\Test7.exe"; DestDir: "{app}"; Flags: ignoreversion;         
Languages: english; Tasks: Test7;

[RUN]
Filename: {sys}\net.exe; \
     Parameters: "use I: \\Test\PUB /user:administrator /PERSISTENT:YES"; \    
     Tasks: MapDrive;
Filename: {sys}\net.exe; \
    Parameters: "use H: \\Test\SYS /user:administrator /PERSISTENT:YES"; \
    Tasks: MapDrive;
Filename: "{userdesktop}\Test.exe"; Flags: runascurrentuser; Tasks: Test;
Filename: "{userdesktop}\Test2.exe"; Flags: runascurrentuser; Tasks: Test2;
Filename: "{userdesktop}\Test3.msi"; Flags:  
runascurrentuser; Tasks: Test3;
Filename: "{userdesktop}\Test4.msi"; Flags: runascurrentuser; Tasks: Test4;
Filename: "{userdesktop}\Test5.msi"; Flags: runascurrentuser; Tasks: Test5;
Filename: "{userdesktop}\Test6.exe"; Flags: runascurrentuser; Tasks: Test6;
Filename: "{userdesktop}\Test7.exe"; Flags: runascurrentuser; Tasks: Test7;

คำตอบ

3 MartinPrikryl Jan 08 2021 at 23:03

ข้อผิดพลาดไม่เกี่ยวข้องกับตำแหน่งเครือข่ายใด ๆ มันหมายถึงC:\ในDefaultDirName.

สำหรับการอภิปรายทั่วไปเกี่ยวกับข้อความแสดงข้อผิดพลาดนี้โปรดดู:
ข้อผิดพลาด Inno Setup เมื่อติดตั้งไปยังรูทไดรฟ์ USB: "คุณต้องป้อนเส้นทางแบบเต็มพร้อมอักษรระบุไดรฟ์"

แม้ว่าคุณจะไม่ได้ติดตั้งลงในรูทไดรฟ์ USB คุณกำลังพยายามติดตั้งเพื่อC:ไดรฟ์รูท นั่นเป็นสิ่งที่ผิด คุณไม่ควรพยายามติดตั้งอะไรลงในC:รูท

ฉันเข้าใจว่าตัวติดตั้งของคุณไม่ได้ติดตั้งไฟล์จริงด้วยตัวมันเอง จากนั้นคุณควรตั้งค่าทั้งสองCreateAppDirและUninstallableเป็นno:

[Setup]
CreateAppDir=no
Uninstallable=no

และคุณควรจะแยกย่อยติดตั้งของคุณเพื่อไม่ให้{tmp}{app}

ดูยังใช้ Inno ติดตั้ง UI เป็นตัวเองระบายเท่านั้น - ไม่มีการติดตั้ง