Condividi tramite


Distribuzione e dipendenze

Aggiornamento: novembre 2007

Con gli strumenti di distribuzione di Visual Studio le dipendenze vengono rilevate automaticamente e aggiunte al progetto di distribuzione ogni volta che viene aggiunto al progetto un gruppo di output del progetto, un assembly o un modulo unione. In certi casi, tuttavia, non è possibile rilevare le dipendenze.

Suggerimento:

Anziché aggiungere direttamente un assembly a un progetto di distribuzione, è preferibile aggiungere un gruppo di output del progetto contenente l'assembly in quanto per gli strumenti di distribuzione è più facile rilevare le dipendenze di un gruppo di output del progetto.

Tutte le dipendenze di assembly da altri assembly vengono rilevate. Se tuttavia in un assembly si fa riferimento a un componente non gestito, come ad esempio una DLL COM, non sarà rilevata alcuna delle eventuali dipendenze di quel componente. Analogamente i file aggiunti direttamente a un progetto di distribuzione potrebbero avere dipendenze che non vengono rilevate. In entrambi i casi, per quanto i file dipendenti siano generalmente necessari per il funzionamento dell'applicazione, non impediranno il funzionamento del programma di installazione.

Per evitare questo problema, è necessario innanzi tutto determinare di quale tipo sono le dipendenze per poter prendere i provvedimenti appropriati.

  • È possibile che si faccia riferimento a un componente che può essere installato solo come parte di un altro prodotto, come ad esempio il controllo Web Browser (shdocvw.dll), che viene installato come parte di Internet Explorer.

    In questo caso è necessario escludere il componente dal progetto di distribuzione e aggiungere una condizione di avvio con la quale venga controllata la presenza del componente nel computer di destinazione e, nel caso in cui questo non venga trovato, venga impedita l'installazione. L'utente finale dovrà quindi installare il prodotto che fornisce il componente prima di installare l'applicazione.

  • È possibile che venga aggiunto un componente non gestito che non espone tutte le sue dipendenze, come avviene per le classi MFC (Microsoft Foundation Classes) che non includono come dipendenze i file satellite localizzati.

    In questo caso sarà necessario determinare tutte le dipendenze possibili e includerle nel progetto di distribuzione. Per stilare un elenco di dipendenze, è opportuno consultare la documentazione del componente o chiedere informazioni all'autore del componente.

    Nota:

    La maggior parte degli strumenti di controllo delle dipendenze, come Depends.exe, trova solo le dipendenze ad associazione anticipata; le dipendenze ad associazione tardiva vengono visualizzate soltanto in fase di esecuzione.

  • È possibile che si faccia riferimento a un assembly con una dipendenza da un componente non gestito, come ad esempio System.Data.dll, che ha una dipendenza da Microsoft Data Access Components (MDAC) versione 2.8. Per ulteriori informazioni, vedere Procedura: aggiungere una condizione di avvio per Microsoft Data Access Components.

    Per fare in modo che vengano installati tutti i file dipendenti, è possibile aggiungere un modulo unione contenente il componente e tutte le sue dipendenze. Potrebbe essere necessario a questo scopo chiedere all'autore del componente se è disponibile un modulo unione. Per molti componenti Microsoft sono disponibili moduli unione sul sito Web di Microsoft.

    Ove non sia disponibile il modulo unione, una soluzione potrebbe essere quella di aggiungere una condizione di avvio con la quale sia verificata la presenza del componente durante l'installazione e, se questo non viene trovato, venga impedita l'installazione.

Vedere anche

Attività

Procedura: escludere file da un gruppo di output del progetto

Procedura: aggiungere una condizione di avvio per Microsoft Data Access Components

Altre risorse

Gestione delle condizioni di avvio durante la distribuzione