Newsgroup: it.comp.lang.visual-basic
Titolo: Problema irrisolto da mese con creazione pacchetti di installazione.

Ciao a tutti,
non capisco se è il mio VisualBasic che non funziona bene, se sono io che
non capisco nulla (probabile) e se la microsoft ha fatto un sistema da
schifo.
Tutte le applicazioni che ho fatto fino adesso mi danno lo stesso problema,
e non ho trovato nessuna soluzione.
Creo il pacchetto di installazione e non vengono emessi errori. Provo a
installare e tutto funziona correttamente.
Provo ora a installarlo su di un altro PC con un sistema operativo diverso e
mi appare la finestra che mi chiede di riavviare il PC.
Seguo le istruzioni indicate da questa finestra, quindi riavvio, ma senza
risultato nel senso che continua ad apparire la stessa finestra anche
riavviando il PC decine di volte.
Vi assicuro  che il problema si verifica con qualsiasi applicazione dalle
più complesse alle più semplici. In particolare quella che stò sviluppando
adesso (vi allego il codice alla fine del messaggio) è semplicissima non ha
nessun form! ed utilizza un solo modulo dove è inserito il codice riportato
qui sotto.
Tempo fà ho creato un'applicazione è ho creato il pacchetto di installazione
su tutti i sistemi operativi: Win95,98,me,NT,2000, XP ma quando l'ho
distribuita la maggior parte degli utilizzatori aveva problemi
nell'installazione. Mi sembra assurdo dover installare Visual Basic sul PC
di un eventuale committente!
E' possibile che non esista un sistema per creare un pacchetto di
installazione affidabile che giri su qualsiasi PC?? Spesso mi capita che
l'installazione va a buon fine ma poi quando l'avvio dal menù start, essa
viene avviata ma non mi fa vedere nessuna finestra di dialogo.
Spero in un vostro aiuto, anche se mi sembra di aver capito che non esiste
una soluzione.
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal pDirectory As String,
ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1
Public Sub Main()
    impu = "c:\file\attributo.txt"
    Open impu For Input As #1
    Line Input #1, leggiriga
    n_car = Len(leggiriga)
    leggiriga = Mid(leggiriga, 2, n_car - 2)
    filees = "c:\file\schede\Scheda " & leggiriga & ".doc"
    If Dir(filees) <> "" Then
        ShellExecute 0, vbNullString, filees, vbNullString, "C:\",
SW_SHOWNORMAL
    Else
        MsgBox "La scheda collegata a questo blocco non è presente nella
cartella c:\file\schede.", vbExclamation
    End If
End Sub
Ciao a tutti
Emiliano

 e non ho trovato nessuna soluzione.
[cut]
il mio consiglio č banale ma dopo svariate figurace che mi ha fatto fare il
"Creatore di pacchetti di installazione" l'ho definitivamente accantonato,
eliminato, distrutto... ho reso l'idea. Non mi ha mai funzionato
correttamente.
Per un periodo mi scrivevo io il prog di installazione con i file compressi
con rar poi; grazie al NG, ho scoperto InnoSetup... E' un ottimo prodotto a
mio giudizio ed č gratuito in piů ti permette di avere un alto controllo
sulla tua installazione.. provalo.
Ciao!

 sulla tua installazione.. provalo.
Seeee, sino al prossimo SP che lo rende, anche fosse per un'ora,
inutilizzabile.

 riavviando il PC decine di volte.
Allora io faccio cosi : creo il pacchetto in winXP pro che e' compatibile
per l'80% con win98 , po passo a win2000 e creo il pacchetto per il 2000
guarda e' la stada + breve e meno fastidiosadi tutte, anche se mi prometto
di studiarmi le librerie standard del vb per sapere a priori di cosa ha
visogno il mio prg per girare.

 viene avviata ma non mi fa vedere nessuna finestra di dialogo.
Sinceramente....
Io ho avuto problemi una sola volta, a causa di una Dll che viene usata da
Explorer, e che quindi il setup non riesce a sostituire (MsVcrt.Dll).
Seguendo quanto ti scrivo sotto, ho installato di tutto, su qualunque S.O.,
senza alcun problema, e utilizzando il PDW di Visual Studio. E il pacchetto
ha sempre funzionato sia per Exe, che per ActiveX su Html, sia per ActiveX
Document.
1) Usare sempre la versione di ADO/DAO più recente installata sulla macchina
di sviluppo
2) Compilare prima di creare il pacchetto, chiudere VB e attivare il PDW da
menù avvio
3) Togliere dal pacchetto, se presenti, i seguenti file: Mdac, Dcom, Jet,
MsVcRt
4) Verificare che nel pacchetto non ci siano file TLB (se così è, c'è
qualcosa di sbagliato nei riferimenti)
5) Creare il pacchetto
6) Mettere sul CD, oltre al pacchetto, i file DCOM98, MDAC_TYP27, JET40SP3
(da eseguire prima del setup, se necessari per aggiornare la macchina
target)
Forse alcune di queste cose sono inutili, ma facendo così adesso sono al
100% di pacchetti che girano su qualunque S.O..
Altro suggerimento: occhio alle API, che a volte dipendono dal S.O., ma
questo lo vedi a run-time, non nel setup.
Ciao
Alberto

 problema!
Io concordo con te sul come parlare male di M$ ma l'installatore fa
davvero pena! Fai un programma da WinXp e poi installalo si Win2000...
Al3x

 davvero pena! Fai un programma da WinXp e poi installalo si Win2000...
Presente.
Exe
Controlli ActiveX
ActiveX Document
Sviluppo indifferentemente su W2k o WXP, installazione perfetta su W95, W98,
WME, W2kPro, W2kSrv,WXP.
Tu che problemi incontri?
Alberto

 davvero pena! Fai un programma da WinXp e poi installalo si Win2000...
Anche questo mi pare sia documentato in MSDN
Scocciature, certo, ma risolvibili.

 questo lo vedi a run-time, non nel setup.
Quoto volontariamente tutto e ne propongo un'archiviazione in FAQ.
Ho sempre seguito (praticamente alla lettera senza che ci fossimo accordati
prima) i consigli che Albe ha diligentemente riepilogato e non ho mai avuto
problemi, su nessun sistema operativo e, garantisco, li ho incontrati tutti,
da 95 a XP, moltiplicati per vari SP.

 inutilizzabile.
Ciao,
non è tanto per parlare male di M$, perchè con VB 6.0 mi sono sempre
trovato bene.
Ma, se posso dire "la mia", devo dire che ho sempre avuto un sacco di
problemi ad installare le mie applicazioni con il P&DW, finchè non ho
usato InnoSetup. Anche su PC in cui P&DW falliva, InnoSetup ha sempre
funzionato.
Insomma, mi sono dimenticato dei miei problemi di installazione.
(parentesi: non volevo fare "pubblicità", solo discutere con voi della
mia esperienza...)
Ciao,
Marco
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 mia esperienza...)
Chiunque, credo, può dire la propria. Nemmeno io volevo denigrare InnoSetup,
non lo conosco e quindi non ne posso dire nulla, volevo solo dire che io non
ho mai avuto problemi col tool della M$, se usato correttamente.
Sul fatto che sia comodo/scomodo non entro nel merito non avendo confronti,
però quando qualcosa non va è praticamente sempre dovuto a uno o più file
erroneamente distribuiti o di versioni "strane" sulla macchina di origine.

 qualcosa di sbagliato nei riferimenti)
Potresti spiegarmi meglio questo particolare?
Ho notato che, in effetti, la registrazione del .tlb fallisce
sistematicamente, anche se poi, dicendo di ignorare il problema,
l'installazione riesce ed il programma è utilizzabile...
Salutoni
Sergio

 da 95 a XP, moltiplicati per vari SP.
Ciao a tutti sono contento di tutte le risposte avute, qualche mese fa ho
postato lo stesso problema ma senza avere successo.
Provo subito a seguire i vostri consigli.
Tuttavia ho già provato a creare il pacchetto di installazione su WinME e
poi a installarlo sia su WinXP che su WinNT e non ho avuto problemi di
installazione.
Però mentre in WinXP tutto funziona bene, in WinNT pur non avendomi dato
problemi di installazione, quando avvio l'applicazione non fa quello che
deve fare.
Quello con non funziona è il comando:
filees = "c:\prova.doc"
ShellExecute 2, vbNullString, filees, vbNullString, "C:\", SW_SHOWNORMAL
è forse incompatibile con WinNT o seguendo i vostri consigli si dovrebbe
risolvere anche questo problema?
Ciao a tutti e ancora grazie.
Emiliano

 l'installazione riesce ed il programma č utilizzabile...
E' un baco del PDW.
Le tlb non vanno incluse e tanto meno registrate.
--
ciao, hal
--------------------------------
Inviato via 
http://usenet.libero.it

Ciao Lupo e Albe,
ho provato a seguire i consigli di Albe, ma purtroppo per mia poca
esperienza non ho capito alcune cose.
Spero che siate cosě gentili di perdere un po' del vostro tempo a
spiegarmele anche perchč da quello che ho capito non sono l'unico ad avere
problemi
1. Cosa vuol dire versione ADO/DAO piů recente? Dove la trovo?
2. Pur compilando prima di creare il pacchetto quest'ultimo mi avvisa che il
file compilato č piů vecchio del progetto!
3. Togliere i file Mdac, Dcom, Jet MsVcRt: come faccio a toglierli se il
pacchetto devo ancora crearlo, dove li trovo? inoltre non hanno
un'estensione?
4. Come faccio a verificare la presenza di file *.TLB se devo ancora creare
il pacchetto, comunque dopo averlo creato trovo il seguente file:
"STDOLE2.TLB"
5. Dove trovo i fiel DCOM98 ecc? Ho fatto una ricerca nel mio hardisk del
file DCOM98 ma non ho trovato niente.
6. Mi dici che un problema derivante dalle API lo posso verificare nel
run-time, cosa vuol dire? cioč lo vedo dopo aver installato il programma in
un altro PC il quale si installa ma non funziona, oppure lo vedo
nell'ambiente di sviluppo di VB?
7. L'applicazione che sto creando adesso utilizza la funzione SHELLEXCTUTE
come segue inserita in un modulo
filees = "c:\prova.doc"
ShellExecute 2, vbNullString, filees, vbNullString, "C:\", SW_SHOWNORMAL
č possibile che questa non sia compatibile con WinNT4.0 ? ne sapete
qualcosa?
Esiste in internet una guida completa che spieghi come creare un pacchetto
di installazione funzionante, magari spiegando dettagliatamente tutti gli
accorgimenti che servono?
Spero in un vostro aiuto perchč mi piacerebe risolvere definitivamente
questo dilemma altrimenti mi sa tanto che č inutile che continua a
sviluppare applicazioni in VB se poi non le posso distribuire.
Vi ringrazio in anticipo e scusatemi per la lunghezza del messaggio.
Ciao
Emiliano

 accorgimenti che servono?
Sì, sempre là, ma se hai VB hai anche la guida, vero?!
Ora una domanda la faccio io, se permetti: Ma tu, per davvero, hai mai
creato un pacchetto di installazione?


Ciao, ti ringrazio per la velocissima risposta.
Ora rispondo alla tua domanda: è da circa un anno che programma qualche
piccola applicazione in VB per uso personale, con VBA nessun problema ma
tutte le applicazione per Windows funzionano benissomo nell'ambiente di
esecuzione, ma non sono mai riuscito a creare un pacchetto di installazione
che funzioni!! o meglio funziona solo sul PC dove lo creao, su altri PC o
non riesco a installarlo, oppure lo installo ma non funziona, tra l'altro
lavoro con una ditta che possiede 5 PC ognino dei quali con un SO diverso!
Possiedo la guida MSDN (la utilizzo molto spesso) ma è interamente in
inglese e per qualche problema un po' più complicato....
Vorrei approfittare della tua gentilezza se posso (spero di si):
l'applicazione che ho sviluppato attulmente è di una semplicità unica e
probabilmente non necessita nemmeno di pacchetto di installazione, o almeno
mi piacerebbe che fosse cosi; si tratta di una funzione scritta interamente
in un'unico modulo, sono solo una 15ina di di righe le quali leggono il
contenuto della prima riga di un file TXT e apre un file di WORD con il nome
letto nel file TXT.
Potrebbe sembrare senza senso, ma se si pensa che il file TXT viene creato
da un'altra applicazione che di volta in volta scrive il file TXT e avvia
l'eseguibile, tutto assume un senso.
Mi piacerebbe (ecco dove ne approfitto) che tu mi creassi il pacchetto di
installazione di questa applicazione, nel frattempo io sto cercando un
docente di VB che possa implementare le mie poche conoscenze.
Ti allego il codice che è da copiare nel Modulo1, non servono form:
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal pDirectory As String,
ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1
Public Sub Main()
    impu = "c:\file\attributo.txt"
    Open impu For Input As #1
    Line Input #1, leggiriga
    n_car = Len(leggiriga)
    leggiriga = Mid(leggiriga, 2, n_car - 2)
    filees = "c:\file\schede\Scheda " & leggiriga & ".doc"
    If Dir(filees) <> "" Then
        ShellExecute 0, vbNullString, filees, vbNullString, "C:\",
SW_SHOWNORMAL
    Else
        MsgBox "La scheda collegata a questo blocco non è presente nella
cartella c:\file\schede.", vbExclamation
    End If
End Sub
Spero nella tua gentilezza dimostrata fin'ora
ti saluto
Ciao da Emiliano

 docente di VB che possa implementare le mie poche conoscenze.
Lo farei, ma come farò a spedirti 1/2/3 Mb di roba (perchè tanti saranno,
anche se il tuo programma fa solo a=1+2). Credi a me, ti conviene farlo da
solo: Hai VB6 regolarmente installato? Programmi, Visual Studio 6.0,
Strumenti di Visual Studio 6.0, Creazione guidata pacchetti di
installazione. Rispondi alle semplicissime domande.

Sergio
Kylnas

a proposito di pacchetti d'installazione... ho avuto un casino di problemi
con il "Package & Deployment Wizard"... in poche parole fa ridere i polli...
:(((
sono passato ad Inno Setup ed ho risolto tutti i miei problemi... :)))
http://www.programmando.org/public/web/modules.php?name=News&file=article&si
d=25&mode=&order=0&thold=0
ed andate alla grande!
--
Massimiliano Etere
massimili...@programmando.org
http://www.programmando.org

 sono passato ad Inno Setup ed ho risolto tutti i miei problemi... :)))
Credo che Lupo abbia già postato qualcosa al riguardo.
Di gente che si lamenta di Inno Setup ne ho sentita tanta.
Ma chissà perchè, quando si chiede a chi si lamenta del PDW: "Mi dici che
problemi hai avuto", generalmente non si ha mai risposta.
Sembra che sparare addosso alle cose sia un hobby molto diffuso (ultimamente
anche il tiro alla moglie è molto praticato, in effetti...)
Alberto

 ha scritto


 problemi hai avuto", generalmente non si ha mai risposta.
beh... creato un pacchetto d'installazione su 2000 non è detto che funzioni
su di un altro 2000, ma magari va su XP... se lo crei da XP non funge su
2000... non è detto che registri correttamente gli OCX... ad esempio quelli
di Crystal Report vengono registrati nel 30% dei casi... nel restante 70%
non funge una maxxa. La stragrande maggioranza delle volte quando lanci
l'installazione ti dice qualcosa tipo: "il sistema ha dei file troppo
vecchi, riavvia per aggiornarli"... ma come al solito dopo il riavvio non
aggiorna nulla ed è impossibile completare l'installazione... che altri
problemi mi vengono in mente??? Bah per ora nulla...
Dopo l'ennesima figura di cavolo con il Cliente sono passato ad Inno Setup e
posso garantirti che da circa un mesetto non ricevo lamentele di alcun
genere... e posso assicurarti che il Cliente ha installato il software su
decine di PC differenti come hardware e software... prima eravamo costretti
a partire in auto, 400 km andata e ritorno per fare delle installazioni...
non aggiungo altro...
in sostanza ho risolto i miei problemi. Ti sembra poco?
Ricordiamo, poi, che Inno Setup è freeware.... :)))



e qui scatta la domanda banale :-)
io l'ho provato, a parte che è in inglese quando installi le cose (non 
so se c'è l'Italiano), cmq seguendo la procedura, chiede solo di 
includere i file da mettere dentro
ho provato x un mio programma netsend molto semplice, ma su un pc di una 
mia amica non funge
quindi la domanda è questa:
ma x capire se si usano api dll o altro che devono essere incluse nel 
pacchetto di installazione x funzionare, devo saperlo io o lui in 
automatico tira dentro nell'exe tutto quello che serve?
immagino non sia così facile e che devo saperlo io :-)
non ho ancora creato un pacchetto di installazione (a parte quella prova 
con inno)e volevo provare quello guidato del vb
quindi volevo capire se cmq è meglio farlo con inno (se include tutto da 
solo(ma non penso) o se conviene farlo con la guida se cmq devo sapere 
io i file da includere)
(((((((((((((((((((((((((((((((((((((((((((((((((((
domanda bonus: non ho ancora cercato nel NG (quindi se è una domanda 
stra postata non rispondetemi), come faccio a sapere se devo includere 
librerie speciali x far girare il mio programma? devo guardare ogni 
singola riga di codice e cercare sulla guida se quella funzione, api, 
dao, ado, jet ecc..... funziona da sola creando l'exe o ha bisogno di 
qualcosa di installato sul pc che usa l'exe? se si, come si chiama 
questo riferimento da cercare? cioè avrà un nome generale, tipo 
(requisiti) :-)
))))))))))))))))))))))))))))))))))))))))))))))))))))
ciaociao

ciaociao
ciao 
Kylnas

 Ricordiamo, poi, che Inno Setup è freeware.... :)))
Perchè, il PDW tu lo paghi, una volta che hai VB?
Alberto

 
se ho capito bene creado il file delle dipendenze mi viene fuori la 
lista con i file da creare, dicendogli solo quale è il mio progetto
sarebbe cosa very buona se fa tutto da solo :-)
però funziona al 100%? xchè sento che qui molti si lamentano e 
consigliano inno, ancora non ho capito chi l'ha spuntata :-)
cmq sta sera provo, magari seguendo anche l'ottima guida postata dai 
grandi lupo e albe :-)
ciaociao

ciaociao
Kylnas

 
ok č tutto chiaro, ci dovrň prendere un pň di pratica ma cmq mi schiero 
dalla parte dei vb6 pacchetti guidati e non da inno
dopotutto č + giusto che un programma faccia tutte le sue funzioni e non 
si debba installare un altro programma :-)
ciaociao e grazie x le dritte!

www.programmando.org
 e ti leggi l'articolo sull'installazione di
applicazioni VB con Inno Setup :)


per quanto concerne le mie capacità posso assicurarti di sapere quello che
faccio e non mi piace perdere tempo dietro alle caxxate... il problema delle
aziende non pubbliche è che il tempo = denaro... se mi devo mettere a
perdere tempo per un dannato schifoso pacchetto d'installazione del cavolo
allora preferisco passare ad Inno Setup che con 5 minuti mi risolve i
problemi.
ti basta come giustificazione?


 che nel NG c'è una buona identità di vedute, se usata bene non dà
problemi.
guarda neanche io voglio mettermi per forza a fare dei confronti... ho
scritto nell'articolo che Inno Setup è indicato a chi non ne può più di
PDW... poi il mio giudizio a favore dell'Inno Setup è soggettivo, con pochi
minuti ho risolto i problemi, non ho dovuto cercare sul newsgroup, non ho
dovuto fare riferimento all'MSDN e non mi sono messo a testarlo su tutte le
macchine dell'ufficio. Se un prodotto mi risolve i problemi in 5 minuti non
vedo perchè non dovrei consigliarlo anche agli altri per risolvere i loro...
:)
è una stravalida alternativa al PDW


 vedo perchè non dovrei consigliarlo anche agli altri per risolvere i
loro...
Giusto.
Ma tutto è nato per la tua affermazione su PDW: "in poche parole fa ridere i
polli...", che a mio parere non è un consiglio tecnico.
ciao
Alberto

 polli...", che a mio parere non è un consiglio tecnico.
eh eh... :)
hai ragione... rileggendola mi sono accorto che ho omesso qualche faccina
:)))
era ironica ovviamente :)))
