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

Discussione: [Inno Setup]errore creazione pacchetto

  1. #1
    jon
    jon non è in linea Scolaretto
    Post
    218

    Question [Inno Setup]errore creazione pacchetto

    salve a tutti
    durante la creazione di un pacchetto di installazione di inno setup nel copiare due dll ottengo un errore e inno si blocca queste sono le due dll
    codice:
    Source: C:\WINDOWS\system32\MSSTDFMT.DLL; DestDir: {sys}; Flags: restartreplace sharedfile regserver
    Source: C:\WINDOWS\system32\MSBIND.DLL; DestDir: {sys}; Flags: restartreplace sharedfile regserver
    l'errore che inno da è il seguente:
    "attempt to deploy DLL file from own windows system directory.
    Credo che il problema sia dato dal fatto che inno non permetta di copiare alcuni file di sistema, ma senza queste due dll il mio programma non funziona.
    Sarei grato di un'eventuale aiuto.

  2. #2
    L'avatar di spikexx84
    spikexx84 non è in linea Scribacchino
    Luogo
    Darfo Boario Terme (BS)
    Post
    1,164
    La registrazione manuale funziona?

    Sai come farla?
    Se sei nuovo e vuoi aiuto il miglior modo che io ho trovato per ottenerlo è porre le domande in modo intelligente
    Se hai delle domande siamo qui per tentare di risponderti, se hai delle risposte siamo qui per ascoltarle
    Noi siamo una comunità, una bella comunità e funzioniamo sempre meglio se ognuno cerca di seguire al massimo il nostro regolamento

  3. #3
    jon
    jon non è in linea Scolaretto
    Post
    218
    bhe da windows: regsvr32 e nome della dll in altri modi non saprei come fare, e specialmente con inno non so proprio come fare

  4. #4
    L'avatar di spikexx84
    spikexx84 non è in linea Scribacchino
    Luogo
    Darfo Boario Terme (BS)
    Post
    1,164
    Quote Originariamente inviato da jon Visualizza il messaggio
    bhe da windows: regsvr32 e nome della dll in altri modi non saprei come fare, e specialmente con inno non so proprio come fare
    Si quel tipo di registrazione intendevo, ma così funziona? O non registra neanche così?
    Ultima modifica di spikexx84; 22-03-2010 22:39 
    Se sei nuovo e vuoi aiuto il miglior modo che io ho trovato per ottenerlo è porre le domande in modo intelligente
    Se hai delle domande siamo qui per tentare di risponderti, se hai delle risposte siamo qui per ascoltarle
    Noi siamo una comunità, una bella comunità e funzioniamo sempre meglio se ognuno cerca di seguire al massimo il nostro regolamento

  5. #5
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,288
    Quote Originariamente inviato da jon Visualizza il messaggio
    bhe da windows: regsvr32 e nome della dll in altri modi non saprei come fare, e specialmente con inno non so proprio come fare
    Se no ricordo male basta anche trascinare la DLL sul file regsvr32.EXE per fare la registrazione... sempre che quella DLL sia da registrare...!
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  6. #6
    jon
    jon non è in linea Scolaretto
    Post
    218
    registrando manualmente la dll funziona tutto alla perfezione, ma il mio problema rimane nel fatto che distribuendo io mio software non posso andare da ogni singolo cliente e caricare le due dll manualmente, quindi il tutto dovrebbe essere fatto da inno, sia copiare la dll che registrarla!!!!!! ma come?

  7. #7
    L'avatar di spikexx84
    spikexx84 non è in linea Scribacchino
    Luogo
    Darfo Boario Terme (BS)
    Post
    1,164
    Svelato l'arcano

    Quote Originariamente inviato da GuidaDiInnoSetup
    As a convenience to new users who are unfamiliar with which files they should and should not distribute, the Inno Setup compiler will display an error message if one attempts to install certain "unsafe" files using the [Files] section. These files are listed below.
    (Note: It is possible to disable the error message by using a certain flag on the [Files] section entry, but this is NOT recommended.)
    Any DLL file from own Windows System directory You should not deploy any DLLs out of your own Windows System directory because most of them are tailored for your own specific version of Windows, and will not work when installed on other versions. Often times a user's system will be rendered unbootable if you install a DLL from a different version of Windows. Another reason why it's a bad idea is that when you install programs on your computer, the DLLs may be replaced with different/incompatible versions without your knowledge. This could lead to unexpected and difficult-to-trace problems on users' systems when you build new installations.
    Instead of deploying the DLLs from your Windows System directory, you should find versions that are specifically deemed "redistributable". Redistributable DLLs typically work on more than one version of Windows. To find redistributable versions of the Visual Basic and Visual C++ run-time DLLs, see the Inno Setup FAQ.
    If you have a DLL residing in the Windows System directory that you are absolutely sure is redistributable, copy it to your script's source directory and deploy it from there instead.
    In sostanza Inno Setup non lascia copiare nessuna dll o ocx direttamente dalla cartella di sistema di windows, perchè ritiene (giustamente) che quella versione sia specifica per quel sistema operativo e quindi non sia sicuro prenderla direttamente dal tuo (prova pensa cosa succederebbe se sovrascrivessi un file di sistema di WinXp con uno di Win2000....), ma visto che nel tuo caso non stiamo parlando di una dll di sistema, ma semplicemte di una dll condivisa che è installata nella cartella di sistema direi che dobbiamo aggirare il problema,

    Soluzione 1:
    Copi le dll interessate fuori dalla cartella di sistema e quindi le copi da li, cioè copia i file di sistema in c:\Prev-Inno\Setup\FileSistema ad esempio e installali con questo codice

    Source: c:\Prev-Inno\Setup\FileSistema\MSSTDFMT.DLL; DestDir: {sys}; Flags: restartreplace sharedfile regserver
    Source: c:\Prev-Inno\Setup\FileSistema\MSBIND.DLL; DestDir: {sys}; Flags: restartreplace sharedfile regserver

    Soluzione 2:
    Aggiungi nei flag allowunsafefiles che permette appunto di prelevare i file anche dalla cartella di sistema, ovviamente questa è una soluzione da usare con molta cautela.

    Problema risolto?
    Se sei nuovo e vuoi aiuto il miglior modo che io ho trovato per ottenerlo è porre le domande in modo intelligente
    Se hai delle domande siamo qui per tentare di risponderti, se hai delle risposte siamo qui per ascoltarle
    Noi siamo una comunità, una bella comunità e funzioniamo sempre meglio se ognuno cerca di seguire al massimo il nostro regolamento

  8. #8
    jon
    jon non è in linea Scolaretto
    Post
    218
    ok grazie risolto, adesso funziona tutto ok, ho scelto la 2° soluzione.

  9. #9
    L'avatar di spikexx84
    spikexx84 non è in linea Scribacchino
    Luogo
    Darfo Boario Terme (BS)
    Post
    1,164
    Quote Originariamente inviato da jon Visualizza il messaggio
    ok grazie risolto, adesso funziona tutto ok, ho scelto la 2° soluzione.
    Ok bene così, stai attento però
    Se sei nuovo e vuoi aiuto il miglior modo che io ho trovato per ottenerlo è porre le domande in modo intelligente
    Se hai delle domande siamo qui per tentare di risponderti, se hai delle risposte siamo qui per ascoltarle
    Noi siamo una comunità, una bella comunità e funzioniamo sempre meglio se ognuno cerca di seguire al massimo il nostro regolamento

+ Rispondi al Thread

Permessi di invio

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