Instalador de Inno Setup que solo ejecuta un conjunto de instaladores integrados

Jan 08 2021

Estoy creando un instalador en Inno Setup que solo ejecutará un conjunto de instaladores integrados. No instala ningún archivo por sí solo.

Al compilar el instalador, recibo este error:

Debe ingresar una ruta completa con la letra de la unidad; por ejemplo: C: \ APP o una ruta UNC como \ server \ share

A continuación se muestra mi código, pero he cambiado la información de la empresa por información de prueba. Tengo nuestra ruta UNC completa, así que no estoy seguro de por qué recibo este error. Durante este proceso, ¿cómo se ingresan las credenciales para la ubicación?

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

Respuestas

3 MartinPrikryl Jan 08 2021 at 23:03

El error no tiene nada que ver con ninguna ubicación de red. Se refiere a C:\en DefaultDirName.

Para una discusión general sobre este mensaje de error, consulte:
Error de configuración de Inno al instalar en la raíz de la unidad USB: "Debe ingresar una ruta completa con la letra de la unidad"

Aunque no lo instala en la raíz de la unidad USB. Está intentando instalarlo en la C:raíz. Eso está mal. Nunca debe intentar instalar nada en la C:raíz.

Entiendo que su instalador en realidad no instala ningún archivo real por sí solo. Luego, debe establecer ambos CreateAppDiry Uninstallableen no:

[Setup]
CreateAppDir=no
Uninstallable=no

Y debe extraer sus subinstaladores a {tmp}, no a {app}.

Consulte también Usar la interfaz de usuario de Inno Setup solo como autoextractor: sin instalación .