Instalador Inno Setup que executa apenas um conjunto de instaladores incorporados

Jan 08 2021

Estou criando um instalador no Inno Setup que só executará um conjunto de instaladores incorporados. Ele não instala nenhum arquivo por conta própria.

Ao compilar o instalador, estou recebendo este erro:

Você deve inserir um caminho completo com a letra da unidade; por exemplo: C: \ APP ou um caminho UNC como \ servidor \ compartilhamento

Abaixo está meu código, mas troquei as informações da empresa por informações de teste. Tenho nosso caminho UNC completo, então não sei por que estou recebendo este erro. Durante esse processo, como são inseridas as credenciais do local?

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

Respostas

3 MartinPrikryl Jan 08 2021 at 23:03

O erro não tem nada a ver com qualquer local de rede. Está se referindo a C:\em DefaultDirName.

Para uma discussão geral sobre essa mensagem de erro, consulte:
Erro do Inno Setup ao instalar na raiz da unidade USB: "Você deve inserir um caminho completo com a letra da unidade"

Embora você não instale na raiz da unidade USB. Você está tentando instalar o C:driver root. Isso é simplesmente errado. Você nunca deve tentar instalar nada na C:raiz.

Eu entendo que o seu instalador, na verdade, não instala nenhum arquivo real sozinho. Então, você deve definir CreateAppDire Uninstallablepara no:

[Setup]
CreateAppDir=no
Uninstallable=no

E você deve extrair seus subinstaladores para {tmp}, não para {app}.

Consulte também Use Inno Setup UI como um autoextrator apenas - sem instalação .