Riporto di seguito un estratto (spero sufficientemente ampio da far campire che non c'è stata manipolazione, né tagli) dell'aritcolo redatto da Sergio Pappalardo e pubblicato nell'area degli articoli tencici di VB T&T.
>>
non essendo stato modificato per essere perfettamente compatibile con le ultime versioni di Windows, il P&D non può conoscere le loro peculiarità e risulta quindi piuttosto pericoloso, poiché quasi sempre, nei pacchetti di installazione con esso creati, viene richiesto l'aggiornamento di file di sistema (come OLEAUT32.DLL) che in Win2000, XP e successivi, devono essere aggiornati unicamente tramite Service Pack per il sistema operativo stesso (secondo le specifiche della stessa Microsoft) e non da parte di un comune programma, men che meno da un installer. Se si sovrascrivessero tali file, perché il pacchetto viene creato da una macchina più aggiornata (es. WinXP) rispetto a quella dell'utente finale (es. una qualsiasi versione Win9x oppure anche WinNT o 2000), ecco che il sistema diverrebbe nel migliore dei casi completamente instabile, nel peggiore risulterebbe persino impossibile avviarlo.
<<
Quanto riportato è corretto: OLEAUT32.DLL è una parte fondamentale del sistema ma l'istallante di Visual Basic ne ha bisogno per lavorare e lo include nello startup Kit.
E' da notare che il file OLEAUT32.DLL utilizzato dallo startup kit dell'installante realizzato con il PDW proviene da un'apposita cartella da cui il PDW lo preleva (e quindi non lo va a prendere dalla cartella di sistema dove si trova la versione più recente, nativa del sistema operativo in cui si prepara l'installante).
Indichiamo una situazione relale (un po' estremizzata): ho un software che voglio distribuire con compatibilità completa da Win95 a WinXP.
Ammettiamo che io abbia sviluppato il software da distribuire sotto WinXP, che lo abbia testato in ambiente Win95 attraverso un apposito virtualizzatore, e che lo voglia distribuire per farlo girare anche sotto Win95.
Se il PDW prendesse OLEAUT32.DLL dalla cartella di sistema di WinXP esso avrebbe sicuramente una versione superiore a quella del medesimo file che si trova nella cartella di sistema di Win95. Ovviamente il motore di installazione di un installante relaizzato con il PDW controlla che il file che si sta installando sia di versione almeno superiore rispetto a quello che sta sul sistema. Poiché, in questo caso, la condizione viene verificata, OLEAUT32.DLL di WinXP viene sovrascrito a quello di Win95. Trattandosi di un file di sistema, alla fine dell'installazione viene anche richiesto il riavvio del sistema. Ma ormai il patatrack è fatto!
Fortunatamente, il PDW prende e porta con sé un OLEAUT32.DLL che di versione compatibile fin da Win95. Quando il motore di installazione di un installate creato con il PDW tenterà di scrivere OLEAUT32.DLL in un sistema operativo WinXP non lo farà perché quello prensente in quest'ultimo sistema operativo è più recente di quello che si sta tentando di installare.
E siccome il file non viene sostituito, a meno che non venga sostituito qualche altro file di sistema, non viene neppure richiesto il riavvio.
Perciò, mi risulta opportuno chiedere:
1) detto questo, ci sono altri motivi per cui un installante preparato con il PDW, "rovini" OLEAUT32.DLL?
2) quali altri file importanti di sistema prebbero venir "rovinati" da un istallante realizzato con il PDW?
Marcus




[No, seriamente. Sergio non mentirebbe mai per aumentare la sua user base
]

