+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 7 su 7

Discussione: InnoSetup collegamenti Disinstalla anomala

  1. #1
    L'avatar di BLUES
    BLUES non è in linea Scribacchino
    Luogo
    ROMA
    Post
    1,306

    InnoSetup collegamenti Disinstalla anomala

    Ciao a tutti,

    Avendo creato uno script con l'aiuto di InnoSetup e dopo aver compilato e installato (dizCampania.exe) mi appare un collegamento sul Menu/Start/Tutti i programmi e posso DISINSTALLARE

    ma con un altro script creo un altro programma e dopo aver compilato e installato (dizMolise.exe) NON mi appare un collegamento su Menu/Start/Tutti i programmi, come mai?

    mentre se disinstallo la prima che ho creato (dizCampania.exe) subito mi appare l'altro senza che io abbia fatto nulla.

    Avete idea di cosa si tratti? Consigli? Naturalmente sono tutte rinominate e non hanno la stessa cartella, sono destinazioni differenti.

    Grazie a tutti
    BLUES

  2. #2
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,851
    Quote Originariamente inviato da BLUES Visualizza il messaggio
    Avendo creato uno script ....
    ...
    ma con un altro script ....
    e non credi che sarebbe il caso di mostrare questi script ?
    Il regolamento del forum: la prima cosa da leggere.

  3. #3
    L'avatar di BLUES
    BLUES non è in linea Scribacchino
    Luogo
    ROMA
    Post
    1,306
    Quote Originariamente inviato da Brontolo Visualizza il messaggio
    e non credi che sarebbe il caso di mostrare questi script ?
    Giusto

    codice:
    #define MyAppName "Dizionario LIS in Campania"
    #define MyAppVersion "1.0.0.1"
    #define MyAppExeName "DizLISCampania.exe"
    #define MyDistFolder "Output\dotNetFx40_Full_x86_x64.exe"
    
    [ Code]
    function IsDotNetDetected(version: string; service: cardinal): boolean;
    // Indicates whether the specified version and service pack of the .NET Framework is installed.
    //
    // version -- Specify one of these strings for the required .NET Framework version:
    //    'v1.1.4322'     .NET Framework 1.1
    //    'v2.0.50727'    .NET Framework 2.0
    //    'v3.0'          .NET Framework 3.0
    //    'v3.5'          .NET Framework 3.5
    //    'v4\Client'     .NET Framework 4.0 Client Profile
    //    'v4\Full'       .NET Framework 4.0 Full Installation
    //    'v4.5'          .NET Framework 4.5
    //
    // service -- Specify any non-negative integer for the required service pack level:
    //    0               No service packs required
    //    1, 2, etc.      Service pack 1, 2, etc. required
    var
        key: string;
        install, release, serviceCount: cardinal;
        check45, success: boolean;
    var reqNetVer : string;
    begin
        // .NET 4.5 installs as update to .NET 4.0 Full
        if version = 'v4.5' then begin
            version := 'v4\Full';
            check45 := true;
        end else
            check45 := false;
    
        // installation key group for all .NET versions
        key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
    
        // .NET 3.0 uses value InstallSuccess in subkey Setup
        if Pos('v3.0', version) = 1 then begin
            success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
        end else begin
            success := RegQueryDWordValue(HKLM, key, 'Install', install);
        end;
    
        // .NET 4.0/4.5 uses value Servicing instead of SP
        if Pos('v4', version) = 1 then begin
            success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
        end else begin
            success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
        end;
    
        // .NET 4.5 uses additional value Release
        if check45 then begin
            success := success and RegQueryDWordValue(HKLM, key, 'Release', release);
            success := success and (release >= 378389);
        end;
    
        result := success and (install = 1) and (serviceCount >= service);
    end;
    
    function IsRequiredDotNetDetected(): Boolean;  
    begin
        result := IsDotNetDetected('v4\Full', 0);
    end;
    
    function InitializeSetup(): Boolean;
    begin
        if not IsDotNetDetected('v4\Full', 0) then begin
            MsgBox('{#MyAppName} Richiede Microsoft .NET Framework 4.0 Client Profile.'#13#13
              'Il programma di installazione tenterà di installare', mbInformation, MB_OK);        
        end
        
        result := true;
    end;
    
    [Setup]
    ; NOTE: The value of AppId uniquely identifies this application.
    ; Do not use the same AppId value in installers for other applications.
    ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
    ArchitecturesInstallIn64BitMode=x64
    
    AppId={{CE0D3311-43F8-42EA-A849-8D43866A6D95}
    AppName={#MyAppName}
    AppVersion={#MyAppVersion}
    ;AppVerName={#MyAppName} {#MyAppVersion}
    DefaultDirName={pf}\Dizionario LIS - Campania
    DefaultGroupName={#MyAppName}
    LicenseFile=Leggimi\Licenza.txt
    InfoBeforeFile=Leggimi\Inf1.txt
    InfoAfterFile=Leggimi\Inf2.txt
    OutputDir=Output
    OutputBaseFilename=DizLISCampania
    SetupIconFile=Images\Logo.ico
    Password=Campania
    Compression=lzma
    SolidCompression=yes
    
    [Languages]
    Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
    
    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
    Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
    
    [Files]
    Source: "{#MyDistFolder}"; DestDir: {tmp}; Flags: deleteafterinstall; Check: not IsRequiredDotNetDetected
    Source: "DizLISCampania.exe"; DestDir: "{app}"; Flags: ignoreversion
    
    Source: "Images\Logo.ico"; DestDir: "{app}\Images"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "Leggimi\*"; DestDir: "{app}\Leggimi"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "Output\*"; DestDir: "{app}\Output"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "Video\*"; DestDir: "{app}\Video"; Flags: ignoreversion recursesubdirs createallsubdirs
    
    Source: "Microsoft.VisualBasic.PowerPacks.Vs.dll"; DestDir: "{app}"; Flags: ignoreversion
    Source: "DirectShowLib-2005.dll"; DestDir: "{app}"; Flags: ignoreversion
    
    Source: "DizLISCampania.pdb"; DestDir: "{app}"; Flags: ignoreversion
    Source: "DizLISCampania.vshost.exe"; DestDir: "{app}"; Flags: ignoreversion
    Source: "DizLISCampania.xml"; DestDir: "{app}"; Flags: ignoreversion
    
    
    Source: "{#MyDistFolder}"; DestDir: "{app}\Output";Check: Is64BitInstallMode; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "{#MyDistFolder}"; DestDir: "{app}\Output"; Check: not Is64BitInstallMode; Flags: ignoreversion recursesubdirs createallsubdirs 
    
    ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
    
    [Icons]
    Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
    Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" (io penso che il problema sia questo... funziona si ma penso che bisogna rinominare o no?)
    ;Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"; IconFilename: "{app}\myuninstall.ico" 
    Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
    Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
    
    [Run]
    Filename: {tmp}\{#MyDistFolder}; Parameters: "/q:a /c:""install /l/q"""; Check: not IsRequiredDotNetDetected; StatusMsg: Microsoft Framework 4.0 verrà installato. Attendere prego ... 
    Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
    BLUES

  4. #4
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,851
    Quote Originariamente inviato da BLUES Visualizza il messaggio
    Giusto

    codice:
    #define MyAppName "Dizionario LIS in Campania"
    #define MyAppVersion "1.0.0.1"
    #define MyAppExeName "DizLISCampania.exe"
    #define MyDistFolder "Output\dotNetFx40_Full_x86_x64.exe"
    [Icons]
    Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
    Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" (io penso che il problema sia questo... funziona si ma penso che bisogna rinominare o no?)
    ;Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"; IconFilename: "{app}\myuninstall.ico" 
    Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
    Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
    Anch'io credo che il problema sia lì dove hai scritto in rosso. Essendo uno script generato con il Wizard, non è di facile comprensione, tuttavia mi sembra che quel Filename: {uninstallexe} faccia sì che i due script generino l'exe per la disinstallazione con lo stesso nome, non potendo {uninstallexe} essere interpretato come parametro. Forse doveva essere {#uninstallexe}, ma, non sapendo come e dove nasce questo nome non ne sono sicuro.
    Mi è oscuro anche il significato di {cm:UninstallProgram visto che la costante cm sta per "custom message" e quindi ci azzecca poco o niente nella sezione [Icon].

    Personalmente detesto i wizard e i generatori di codice in genere; ma ovviamente è questione di gusti.
    Il regolamento del forum: la prima cosa da leggere.

  5. #5
    L'avatar di BLUES
    BLUES non è in linea Scribacchino
    Luogo
    ROMA
    Post
    1,306
    Quote Originariamente inviato da Brontolo Visualizza il messaggio
    Anch'io credo che il problema sia lì dove hai scritto in rosso. Essendo uno script generato con il Wizard, non è di facile comprensione, tuttavia mi sembra che quel Filename: {uninstallexe} faccia sì che i due script generino l'exe per la disinstallazione con lo stesso nome, non potendo {uninstallexe} essere interpretato come parametro. Forse doveva essere {#uninstallexe}, ma, non sapendo come e dove nasce questo nome non ne sono sicuro.
    Mi è oscuro anche il significato di {cm:UninstallProgram visto che la costante cm sta per "custom message" e quindi ci azzecca poco o niente nella sezione [Icon].

    Personalmente detesto i wizard e i generatori di codice in genere; ma ovviamente è questione di gusti.
    Ti ringrazio Brontolo per la tua risposta,

    no mi da errore con {#uninstallexe}
    per quanto riguarda il significato di {cm:UninstallProgram serve per aggiungere la scritta "disistalla ..." nel Menu start tipo: "Disinstalla Dizionario LIS" senza la quale esce solo "Dizionario LIS"

    ti capisco bene che odi wizard ma per un principiante come me è comodo e veloce e mi basta per quello che mi serve
    BLUES

  6. #6
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    2,851
    Quote Originariamente inviato da BLUES Visualizza il messaggio
    {cm:UninstallProgram serve per aggiungere la scritta "disistalla ..." nel Menu start tipo: "Disinstalla Dizionario LIS" senza la quale esce solo "Dizionario LIS"
    Ah ecco: serve quindi a personalizzare la voce di menu.
    Ho cercato il significato di {uninstallexe} nella guida di InnoSetup: è una costante predefinita che rappresenta il nome dell'exe per la disinstallazione. Questo eseguibile dovrebbe chiamarsi Unins000.exe ed è probabile che abbia lo stesso nome per entrambi i tuoi setup. Può essere che nel menu Programmi di Windows non possano coesistere? Le due applicazioni con relativi uninstaller vanno a finire nello stesso gruppo del menu programmi?
    Il regolamento del forum: la prima cosa da leggere.

  7. #7
    L'avatar di BLUES
    BLUES non è in linea Scribacchino
    Luogo
    ROMA
    Post
    1,306
    Quote Originariamente inviato da Brontolo Visualizza il messaggio
    Ho cercato il significato di {uninstallexe} nella guida di InnoSetup: è una costante predefinita che rappresenta il nome dell'exe per la disinstallazione. Questo eseguibile dovrebbe chiamarsi Unins000.exe ed è probabile che abbia lo stesso nome per entrambi i tuoi setup. Può essere che nel menu Programmi di Windows non possano coesistere? Le due applicazioni con relativi uninstaller vanno a finire nello stesso gruppo del menu programmi?
    No i due applicativi hanno due destinazioni differenti, poi a mia sorpresa riavviando il computer mi è apparso tutto... mah...
    BLUES

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi