Trình cài đặt Inno Setup chỉ chạy một tập hợp các trình cài đặt nhúng

Jan 08 2021

Tôi đang tạo một trình cài đặt trong Inno Setup sẽ chỉ chạy một tập hợp các trình cài đặt được nhúng. Nó không tự cài đặt bất kỳ tệp nào.

Khi biên dịch trình cài đặt, tôi gặp lỗi này:

Bạn phải nhập một đường dẫn đầy đủ với ký tự ổ đĩa; ví dụ: C: \ APP hoặc một đường dẫn UNC như \ server \ share

Dưới đây là mã của tôi nhưng tôi đã hoán đổi thông tin công ty để lấy thông tin kiểm tra. Tôi có đường dẫn UNC đầy đủ của chúng tôi vì vậy tôi không chắc tại sao tôi lại gặp lỗi này? Trong quá trình này, thông tin xác thực cho vị trí được nhập như thế nào?

[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;

Trả lời

3 MartinPrikryl Jan 08 2021 at 23:03

Lỗi không liên quan đến bất kỳ vị trí mạng nào. Nó đang đề cập đến C:\trong DefaultDirName.

Để biết thảo luận chung về thông báo lỗi này, hãy xem:
Lỗi cài đặt Inno khi cài đặt vào gốc ổ USB: "Bạn phải nhập đường dẫn đầy đủ với ký tự ổ đĩa"

Mặc dù bạn không cài đặt vào gốc ổ USB. Bạn đang cố gắng cài đặt để C:root ổ đĩa. Thật tồi tệ. Bạn không bao giờ nên cố gắng cài đặt bất cứ thứ gì vào C:gốc.

Tôi hiểu rằng trình cài đặt của bạn thực sự không tự cài đặt bất kỳ tệp thực nào. Sau đó, bạn nên đặt cả hai CreateAppDirvà Uninstallablethành no:

[Setup]
CreateAppDir=no
Uninstallable=no

Và bạn nên giải nén các trình cài đặt phụ của mình vào {tmp}chứ không phải {app}.

Xem thêm Chỉ sử dụng Inno Setup UI làm trình tự giải nén - Không cần cài đặt .