Risoluzione dei problemi relativi all'installazione e alla distribuzione di progetti

Negli argomenti illustrati in questa sezione vengono esaminati i diversi problemi che è possibile riscontrare quando si creano e si distribuiscono applicazioni.

La versione di .NET Framework richiesta dal progetto di installazione è diversa dalla versione di .NET Framework di destinazione dell'applicazione

I progetti di installazione presentano una condizione di avvio in grado di verificare la disponibilità di una particolare versione di .NET Framework. Questa, tuttavia, può non corrispondere alla versione di .NET Framework di destinazione utilizzata dall'applicazione. Ad esempio, è possibile che l'applicazione sia destinata a .NET Framework 2.0 e che la condizione di avvio nel progetto di installazione cerchi e installi .NET Framework 3.5. Un altro esempio è il caso in cui un modello di progetto di Visual Studio sia destinato a .NET Framework 4 Client Profile, ma il progetto di installazione presenta una condizione di avvio che prevede la ricerca e l'installazione di .NET Framework 4.

Per modificare questo comportamento predefinito, attenersi alla seguente procedura:

  1. In Esplora soluzioni fare clic sul progetto di installazione.

  2. Scegliere Editor dal menu Visualizza, quindi fare clic su Condizioni di avvio.

  3. Fare clic su .NET Framework.

  4. Nella finestra Proprietà impostare la proprietà Versione sulla versione di .NET Framework che il progetto di installazione dovrà cercare e installare.

Accertarsi che anche il programma Setup.exe cerchi e installi la versione di .NET Framework corretta. Per ulteriori informazioni, vedere Finestra di dialogo Prerequisiti e Procedura: installare i prerequisiti nella distribuzione Windows Installer.

Non è possibile installare .NET Framework 3.5 SP1 in Windows Server 2008 R2 o Windows 7

È possibile configurare i progetti di installazione in modo da includere .NET Framework 3.5 SP1 come prerequisito. Installando questo prerequisito in un computer con Windows 7 o Windows Server 2008 R2, viene tuttavia visualizzato il messaggio di errore seguente: "Utilizzare lo strumento per la gestione dei ruoli per installare o configurare Microsoft .NET Framework 3.5 SP1". Windows Server 2008 R2 include .NET Framework 3.5 SP1 come componente facoltativo del sistema operativo, ma, per impostazione predefinita, questo prerequisito è disattivato. Per ulteriori informazioni, vedere Quale versione di .NET è integrata in Windows?

Per risolvere questo problema, modificare il pacchetto del programma di avvio automatico di .NET Framework 3.5 SP1.

  1. Creare un programma eseguibile che esegua la riga di comando "ocsetup Netfx3".

  2. Passare alla cartella %ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1.

  3. Copiare il programma eseguibile nella cartella DotNetFX35SP1.

  4. Passare alla cartella en e aprire il file package.xml con il privilegio di amministratore.

  5. Aggiungere un elemento <Command> all'interno della sezione <Commands> per eseguire il programma eseguibile.

Errori durante l'utilizzo dell'utilità di acquisizione del Registro di sistema di Microsoft Visual Studio in Windows 7

Se si utilizza l'utilità di acquisizione del Registro di sistema di Microsoft Visual Studio (regcap.exe) in un computer che esegue Windows 7, potrebbe venire visualizzato un errore che indica che l'utilità di acquisizione del Registro di sistema di Microsoft Visual Studio ha smesso di funzionare. Il progetto del programma di installazione consente la compilazione, ma successivamente, la dll non viene installata.

Per risolvere questo errore, attenersi alla procedura seguente:

  1. Passare a%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\Tools\Deployment.

  2. Fare clic con il pulsante destro del mouse su regcap.exe, quindi scegliere Proprietà.

  3. Fare clic su Compatibilità.

  4. Selezionare la casella di controllo nella modalità Compatibilità.

Le dipendenze non vengono rilevate con i progetti di installazione di Visual C++

Se si aggiunge un progetto di installazione a una soluzione Visual C++, le dipendenze nella soluzione Visual C++ potrebbero non venire rilevate se nel percorso della cartella sono presenti spazi. Per risolvere il problema, rinominare i progetti rimuovendo lo spazio o aggiungere manualmente le dipendenze. Rinominare ad esempio Documents\Visual Studio 2010\Projects in Documents\VisualStudio2010\Projects.

Impossibile compilare progetti di installazione in Visual Studio con il controllo del codice sorgente

Quando si compilano progetti di installazione in Visual Studio 2008, è possibile che vengano visualizzati errori come "Impossibile completare il comando perché il file nomefile.vdproj è incluso nel controllo del codice sorgente e non è stato estratto.". I progetti di installazione non estraggono automaticamente i file dal controllo del codice sorgente.

Supporto del sistema operativo

Il programma di avvio automatico e il programma di installazione di Visual Studio (progetti di installazione) non sono supportati in Windows Server 2008 Server Core o Windows Server 2008 R2 Server Core, che forniscono un ambiente server a bassa manutenzione con funzionalità limitate. L'opzione di installazione dei componenti di base del server supporta esclusivamente il profilo .NET Framework 3.5 Server Core, pertanto non è possibile eseguire le funzionalità di Visual Studio basate sulla versione completa di .NET Framework. Per ulteriori informazioni, vedere Server Core.

Impossibile installare azioni personalizzate gestite

Quando si installa un'azione personalizzata gestita, è possibile che venga visualizzato un messaggio di errore indicante la mancanza del file con estensione installstate. Ciò accade se l'azione personalizzata gestita non implementa l'azione di installazione. Questa azione crea il file con estensione installstate, mentre le altre azioni aggiornano il file.

Per risolvere il problema, implementare le azioni di installazione, disinstallazione, esecuzione del commit ed esecuzione del rollback nell'azione personalizzata.

Impossibile installare i Language Pack di .NET Framework 3.5 SP1 per determinate impostazioni locali se in Visual Studio 2008 vengono utilizzate impostazioni locali diverse

Quando si seleziona .NET Framework 3.5 SP1 come prerequisito nei progetti di installazione, non vengono generati programmi di avvio automatico né programmi di installazione per installare il Language Pack per impostazioni locali diverse. Ad esempio, se si utilizza una versione non giapponese di Visual Studio, il progetto di installazione non include il Language Pack giapponese di .NET Framework 3.5 SP1.

Per risolvere il problema e creare un Language Pack giapponese ridistribuibile per .NET Framework 3.5 SP1, creare una nuova directory ja nella directory %Programmi%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1. La directory ja deve contenere un file eula.rtf e un file package.xml.

Impossibile installare i Language Pack se .NET Framework 3.5 SP1 è già installato

Se .NET Framework 3.5 SP1 di base è già installato in un computer, non è possibile installare i relativi Language Pack. Ad esempio, se in un computer è già presente .NET Framework 3.5 SP1, non è possibile installare il relativo Language Pack giapponese come prerequisito in un programma di installazione dell'applicazione diverso.

Per risolvere il problema, creare un programma di avvio automatico esclusivamente per i Language Pack. In questo programma aggiungere una dipendenza da .NET Framework 3.5 SP1, in modo che i Language Pack vengano installati solo se .NET Framework di base è già installato. In alternativa, è possibile installare manualmente i Language Pack.

Le azioni personalizzate gestite a 64 bit generano un'eccezione System.BadImageFormatException

Se si aggiunge un'azione personalizzata gestita a 64 bit in un progetto di installazione, il processo di compilazione di Visual Studio incorpora una versione a 32 bit di InstallUtilLib.dll in MSI come InstallUtil. A sua volta, .NET Framework a 32 bit viene caricato per eseguire l'azione personalizzata gestita a 64 bit e provoca un'eccezione BadImageFormatException.

Per risolvere il problema, sostituire InstallUtilLib.dll a 32 bit con la versione a 64 bit.

  1. Aprire il risultante file MSI in Orca dall'SDK di Windows Installer.

  2. Selezionare la tabella Binary.

  3. Fare doppio clic sulla cella [Binary Data] per il record InstallUtil.

  4. Accertarsi che "Leggi binario da nome file" sia selezionato e fare clic sul pulsante Sfoglia.

  5. Individuare %WINDIR%\Microsoft.NET\Framework64\v2.0.50727.

    Nota

    La directory Framework64 è installata unicamente nelle piattaforme a 64 bit e corrisponde al tipo di processore a 64 bit.

  6. Selezionare InstallUtilLib.dll.

  7. Fare clic sul pulsante Apri.

  8. Fare clic sul pulsante OK.

Per ulteriori informazioni, vedere Azioni personalizzate gestite a 64 bit con Visual Studio (la pagina potrebbe essere in inglese).

Creazione di un percorso per una finestra di dialogo e una casella di testo personalizzate

Se si crea una finestra di dialogo personalizzata con una casella di testo, la finestra di dialogo "Cartella di installazione" deve essere posizionata dopo la finestra di dialogo personalizzata. Il valore della directory verrà quindi propagato automaticamente. In caso contrario, se l'ordine della finestra di dialogo personalizzata e della finestra di dialogo "Cartella di installazione" viene invertito, è necessario propagare manualmente il valore della directory.

Nella finestra di output vengono visualizzati errori di compilazione aggiuntivi

Quando si verifica un errore di compilazione specifico, è possibile che vengano visualizzati anche messaggi di errore generici come "Errore generale di compilazione del programma di avvio automatico." o "Errore di compilazione irreversibile.". Ignorare questi messaggi di errore generici e risolvere l'errore specifico.

I file precedentemente esclusi vengono nuovamente inclusi alla riapertura della soluzione

Quando si esclude un file da un progetto di installazione è possibile che, una volta chiusa e riaperta la soluzione, il file venga nuovamente incluso. Questo può accadere in presenza di due copie dello stesso file DLL da due percorsi di origine diversi.

Per risolvere il problema, modificare la proprietà Copia localmente in uno dei file:

  1. In Esplora soluzioni fare clic sul riferimento DLL da rimuovere.

  2. Scegliere Finestra Proprietà dal menu Visualizza.

  3. Impostare la proprietà Copia localmente su False.

Impossibile compilare i progetti di installazione, errore "Memoria disponibile insufficiente per completare l'operazione."

Quando si aggiungono file di grandi dimensioni in un progetto di installazione, il tentativo di compilare il progetto genera l'errore "Memoria disponibile insufficiente per completare l'operazione", anche se sul disco rigido locale vi è spazio disponibile. Durante il processo di compilazione può verificarsi inoltre un aumento dell'utilizzo della memoria virtuale.

Per risolvere il problema, incrementare la RAM nel computer di compilazione o tentare questa soluzione alternativa:

  1. Aggiungere un file nel progetto che abbia lo stesso nome del file di grandi dimensioni.

  2. Nella pagina delle proprietà del progetto impostare il programma di installazione su Crea pacchetto come file separati non compressi.

  3. Eseguire la compilazione.

  4. Copiare i file a dimensione intera nel percorso di compilazione.

Il progetto di installazione non aggiorna i file modificati

Sebbene il progetto di installazione sia configurato per la rimozione delle versioni precedenti dei file, i file modificati o sostituiti dall'utente non vengono sostituiti tramite Windows Installer. Per ulteriori informazioni, vedere Nessun file dispone di una versione con controllo degli hash dei file.

Impossibile utilizzare una condizione di avvio per verificare la disponibilità di .NET Framework 3.5 SP1

Il rilevamento dei prerequisiti per .NET Framework 3.5 SP1 non è supportato con gli scenari solo MSI. Per contro, è necessario configurare il programma di avvio automatico Setup.exe per verificare la disponibilità di .NET Framework 3.5 SP1 e installarlo. Per ulteriori informazioni, vedere Finestra di dialogo Prerequisiti.

Come creare un programma di avvio automatico a 64 bit che include .NET Framework

Includendo .NET Framework 3.0 come prerequisito e installando il programma di avvio automatico Setup.exe in computer a 64 bit viene visualizzato un messaggio di errore indicante che i sistemi operativi a 64 bit non sono supportati.

.NET Framework 3.5 supporta sia i sistemi operativi a 32 bit che quelli a 64 bit. Se l'applicazione è destinata sia a sistemi operativi a 32 bit che a 64 bit, selezionare .NET Framework 3.5 nella finestra di dialogo Prerequisiti. Per ulteriori informazioni, vedere Finestra di dialogo Prerequisiti.

Come installare i programmi di avvio automatico per SQL 2008 e .NET Framework 3.5 SP1?

I programmi di avvio automatico per SQL 2008 e .NET Framework 3.5 SP1 possono essere installati nel computer di sviluppo tramite l'installazione delle versioni di Visual Studio Express Edition. Nel caso di Visual Studio 2010, SQL 2008 e .NET Framework 3.5 SP1 i programmi di avvio automatico sono inclusi, pertanto questa soluzione alternativa non è necessaria.

La barra rovesciata nella casella di testo provoca una directory non valida o un'eccezione dell'URL

Se l'azione personalizzata si basa sulla digitazione di un percorso di una cartella di installazione da parte dei clienti, è possibile che venga visualizzato un messaggio di errore ArgumentException, correlato a una directory o un URL non validi.

Per evitare questo messaggio di errore, sostituire la barra rovesciata nella proprietà Edit1 e nella casella di testo Edit1Value con uno spazio: /name="[TARGETDIR] ". Analizzare quindi il valore e creare un percorso completo utilizzando il metodo Combine.

Impossibile aggiungere una nuova riga (\n) in un messaggio di errore di un progetto di installazione

Se si scrive un messaggio di errore in un progetto di installazione, non è possibile aggiungere il carattere di nuova riga nel progetto o con Orca.exe. Per contro, è possibile aggiungerlo tramite l'API di Windows Installer in un'azione di post-compilazione con il seguente comando: "INSERT INTO `Property` (`Property`, `Value`) VALUES 'ERRORMESSAGELINES', 'first\r\nnext\r\nlast')". Per ulteriori informazioni sull'utilizzo di un'azione di post-compilazione, vedere https://go.microsoft.com/fwlink/?LinkId=150770 (la pagina potrebbe essere in inglese).

Impossibile selezionare .NET Framework 2.0 SP1 o .NET Framework 3.0 SP1 nella finestra di dialogo Prerequisiti

Nella finestra di dialogo Prerequisiti, .NET Framework 2.0 SP1 e .NET Framework 3.0 SP1 non compaiono nell'elenco delle applicazioni da installare a meno che non siano già installati. Entrambi non sono disponibili come file ridistribuibile autonomo. Per installarli come prerequisiti nei computer degli utenti finali, selezionare .NET Framework 3.5 nella finestra di dialogo Prerequisiti. Per ulteriori informazioni, vedere Finestra di dialogo Prerequisiti.

Il valore predefinito nella casella di testo sovrascrive i parametri della riga di comando

Se si esegue il programma di installazione utilizzando il flag \qb e si passa nei parametri della riga di comando per impostare le proprietà in una finestra di dialogo dell'utente, è possibile che i parametri vengano sovrascritti. Per evitare che il valore predefinito di una proprietà venga sovrascritto da un cliente, modificare il file MSI tramite Orca.exe.

  1. Impostare il valore del campo di modifica nella finestra di dialogo sul nome della proprietà. Ad esempio, impostare la proprietà Edit1Value su [EDITB1].

  2. Compilare il file MSI in Visual Studio.

  3. Modificare il file MSI utilizzando ORCA e inserire il valore predefinito della proprietà nella tabella delle proprietà.

  4. Salvare il file MSI.

Per apportare questa modifica è anche possibile utilizzare un'azione di post-compilazione. Per ulteriori informazioni sull'utilizzo di un'azione di post-compilazione, vedere https://go.microsoft.com/fwlink/?LinkId=150770 (la pagina potrebbe essere in inglese).

Le dipendenze assembly non sono state rilevate

Quando un gruppo di output del progetto, un assembly o un modulo unione viene aggiunto a un progetto di distribuzione, qualsiasi assembly dipendente viene automaticamente rilevato e aggiunto al progetto. È consigliabile aggiungere un gruppo di output del progetto contenente l'assembly, poiché gli strumenti di distribuzione possono rilevare più agevolmente le dipendenze per un gruppo di output del progetto.

Se un assembly dipendente viene caricato in fase di esecuzione mediante codice, non può essere rilevato dagli strumenti di distribuzione. Evitare, se possibile, di caricare assembly mediante codice, oppure aggiungere manualmente gli assembly dipendenti al progetto di distribuzione. Nella tabella seguente vengono elencati problemi in cui non è possibile rilevare le dipendenze e le relative soluzioni.

Problema di dipendenza

Soluzione

Il progetto fa riferimento a un componente che deve essere installato solo all'interno di un altro prodotto.

  • Escludere il componente dal progetto di distribuzione.

  • Aggiungere una condizione di avvio per cercare il componente sul computer di destinazione. Se il componente non viene rilevato, arrestare l'installazione.

Il progetto fa riferimento a un componente non gestito che non espone tutte le sue dipendenze.

Il progetto fa riferimento a un assembly con una dipendenza da un componente non gestito.

Un'applicazione MFC non viene localizzata quando è installata in un computer con impostazioni locali diverse dall'inglese.

Quando si distribuisce un'applicazione MFC utilizzando un progetto di distribuzione di Visual Studio, le dipendenze dei moduli unione localizzati Mfc_loc_e.msm e Mfc_loc_fe.msm non vengono rilevate. I moduli unione sono inclusi in Visual C++; il percorso d'installazione predefinito è \Programmi\Common\Merge Modules. Per distribuire un'applicazione MFC localizzata, è necessario aggiungere manualmente i due moduli unione al progetto di distribuzione.

Dopo l'installazione, non è possibile trovare i file in un server Web

Quando si installa un progetto di installazione Web su un server Web, la proprietà VirtualDirectory per la cartella Applicazione Web e per qualsiasi cartella Web personalizzata determina il percorso in cui verranno installati i file all'interno delle cartelle in questione rispetto alla radice Web. Se questa proprietà viene lasciata vuota, i file saranno installati nella cartella Web radice: inetpub\wwwroot. Per ulteriori informazioni, vedere Proprietà VirtualDirectory.

Come si installa un'applicazione Web sulla directory radice di un server Web?

Per impostazione predefinita, quando si installa un'applicazione Web utilizzando un progetto di distribuzione per installazione Web, i file vengono installati in una cartella con lo stesso nome del progetto di distribuzione direttamente al di sotto della cartella radice Web. La proprietà VirtualDirectory della cartella Applicazione Web determina la posizione in cui vengono installati i file. Per eseguire l'installazione nella radice Web, impostare la proprietà VirtualDirectory su null (eliminare il valore predefinito). Per ulteriori informazioni, vedere Proprietà VirtualDirectory.

Come si disattiva l'analisi delle dipendenze?

Purtroppo non è possibile disattivare direttamente la ricerca e la risoluzione dell'analisi delle dipendenze. Tuttavia, è possibile ovviare a questo problema deselezionando l'opzione Includi percorsi di ricerca standard nella finestra di dialogo che viene visualizzata quando si fa clic sulla proprietà SearchPath.

Occorre considerare alcuni punti aggiuntivi:

  • È necessario aggiungere i file utilizzando il comando Aggiungi file (selezionare Aggiungi dal menu Progetto, quindi File). Se si utilizza Aggiungi output progetto (scegliere Aggiungi dal menu Progetto, quindi Output progetto), verranno incluse le dipendenze riportate dal progetto codificato.

  • In fase di compilazione, è possibile che vengano visualizzati uno o più avvisi del tipo Impossibile trovare la dipendenza che, in questo caso, possono essere ignorati.

  • Se si desidera disattivare l'analisi delle dipendenze solo per alcuni file, è possibile inserire tali file in un progetto di modulo unione con percorsi di ricerca standard disattivati. Utilizzare quindi Aggiungi - Modulo unione (scegliere Aggiungi dal menu Progetto, quindi Aggiungi - Modulo unione) per includere il file con estensione msm in un normale progetto di installazione con percorsi di ricerca attivati.

Come disattivare il ripristino di un file che dovrebbe essere modificato o eliminato dagli utenti?

In Visual Studio vengono creati collegamenti annunciati in modo che, all'avvio, il programma verifichi l'esistenza di tutti i file. Per modificare questo comportamento e fare in modo che il file non venga ripristinato, selezionare i file nel progetto di installazione e impostare la proprietà Condition su NOT REINSTALL, per evitare che il file venga reinstallato durante un ripristino, e la proprietà Transitive su TRUE di modo che la condizione venga rivalutata. In questo modo il programma di installazione comparirà per un attimo sullo schermo un'unica volta, in seguito all'eliminazione del file, nel momento in cui verifica che il file non debba essere reinstallato, ma successivamente non verrà più visualizzato.

Come eseguire il debug di un'azione personalizzata o della classe del programma di installazione?

È possibile utilizzare uno dei seguenti metodi:

  • Aggiungere una chiamata al codice per System.Diagnostics.Debugger.Launch. Con questo metodo viene aperto il debug JIT ed è possibile aggiungere al codice un nuovo debugger.

  • Aggiungere una chiamata al codice per MessageBox.Show("Debug Me"). Quando viene visualizzata la finestra di messaggio, utilizzare Visual Studio per l'associazione al processo MessageBox. Aggiungere quindi nel codice interruzioni per i progetti Visual C# o arresti per i progetti Visual Basic.

  • Impostare le preferenze di debug per avviare %windir%\Microsoft. net\Framework\version\InstallUtil.exe come programma esterno nella pagina di debug di Progettazione progetti. Il nome dell'assembly dell'azione personalizzata corrisponde agli argomenti della riga di comando. Quando si preme il tasto F5, si raggiunge il punto di interruzione. InstallUtil.exe esegue le azioni personalizzate esattamente come MSI.

La registrazione di assembly con le interfacce COM non è possibile.

Si tratta di un bug noto di RegAsm. Se l'assembly dispone di una dipendenza, ad esempio in un'altra libreria della classe, è possibile che RegisterCOM non funzioni perché per ottenere le informazioni di registrazione viene chiamato RegAsm. Poiché RegAsm viene chiamato nella directory \obj, non è possibile trovare la dipendenza e RegAsm genera un errore senza notifica. La soluzione migliore consiste nell'aggiungere manualmente l'assembly dalla directory \bin. Un'altra soluzione consiste nell'utilizzo di RegisterSelfReg.

Verificare inoltre che venga effettuata la registrazione manuale utilizzando RegAsm/Codebase. Se l'assembly non si trova in una posizione condivisa, non viene individuato a meno che non si trovi nella stessa directory del codice chiamante. /Codebase inserisce la directory nel Registro di sistema.

Come risolvere i problemi relativi alle installazioni di Windows Installer utilizzando i file di log

Le operazioni di Windows Installer vengono registrate in un file di log durante l'installazione dei programmi. Il file log si trova nella directory in cui risiede il file con estensione msi.

Come si ottiene il file log di installazione?

Sono disponibili due modalità:

  • Eseguire il comando dalla riga di comando utilizzando l'opzione di registrazione:

    misexec /i mysetup.msi /l*v mylog.txt
    
  • Salvare il codice seguente come file reg e caricarlo nel Registro di sistema:

    REGEDIT4
    
    [HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer]
    "Logging"="voicewarmup"
    "Debug"=dword:00000007
    

    Aprire quindi la directory \temp e ordinare i file in base alla data. Il più recente file msi*.log proviene dall'installazione o dalla disinstallazione più recente.

Come eseguire l'installazione di un prodotto in una sottodirectory di un prodotto già installato

  1. Si supponga che il prodotto già installato, ad esempio Prodotto 1, sia installato e contenga un file denominato MyFile.txt.

  2. Utilizzare Orca.exe, disponibile nell'SDK di Windows Installer, per visualizzare la tabella File e individuare la riga che rappresenta MyFile.txt.

  3. Prendere nota del valore della colonna Component_, quindi aprire la tabella dei componenti.

  4. Nella tabella dei componenti, individuare la riga con il valore Component_ appropriato nella colonna dei componenti e ottenere l'oggetto ComponentID. Copiare questo valore negli Appunti. Chiudere Orca.exe.

  5. Nel progetto di installazione, aprire l'Editor delle condizioni di avvio e aggiungere una ricerca di componenti di Windows Installer. Per la proprietà ComponentID della nuova ricerca, incollare ComponentID.

  6. Copiare la proprietà Property. Dovrebbe essere una proprietà del tipo COMPONENTEXISTS1.

  7. Aprire l'Editor del file system e selezionare Cartella Applicazione.

  8. Modificare la proprietà DefaultLocation in modo che diventi [COMPONENTEXISTS1]MySubFolder, perché il percorso di COMPONENTEXISTS1 include una barra rovesciata '\' finale.

Dopo il passaggio 6 della procedura precedente, può essere necessario aggiungere una condizione all'Editor delle condizioni di avvio per controllare se è stato individuato il componente e, in caso contrario, per bloccare l'installazione e visualizzare un messaggio. La condizione deve essere COMPONENTEXISTS1, che indica che è possibile eseguire il programma di installazione se COMPONENTEXISTS1 non è vuoto.

Come si installano le cartelle Web personalizzate in una porta non predefinita?

Per installare le cartelle Web personalizzate in una porta non predefinita, eseguire l'installazione dalla riga di comando. Il comando deve comprendere i valori della proprietà Property per ciascuna delle cartelle Web personalizzate. Il valore, in genere, ha il seguente aspetto NEWWEBPROPERTY1. Per la Cartella Applicazione Web è necessario includere anche TARGETPORT.

Se ad esempio il server Web si trova sulla porta 20, la riga di comando deve apparire come segue:

msiexec /i mywebsetup.msi TARGETPORT=20 NEWWEBPROPERTY1PORT=20

Tale comando è valido per una sola cartella Web. Se si dispone di più cartelle Web, aggiungere ulteriori coppie PROPERTY=VALUE per ciascuna cartella, come specificato nell'esempio di codice, affinché la porta di ciascuna cartella dell'elenco venga reindirizzata alla porta specificata.

Può essere necessario rimuovere la finestra di dialogo Percorso di installazione, poiché se si modifica la porta dell'interfaccia utente durante l'installazione, le cartelle Web personalizzate utilizzeranno il valore della riga di comando.

Come si esegue l'installazione a livello di radice di un sito Web?

Per eseguire l'installazione a livello di radice di un sito Web, ad esempio, c:\inetpub\wwwroot, impostare VirtualDirectory su una stringa vuota, nel progetto di installazione Web o nel corso dell'installazione.

Come si esegue l'installazione di ServicedComponent nella Global Assembly Cache e lo si configura nel catalogo COM+?

Se si tenta di installare ServicedComponent nella Global Assembly Cache e di configurarlo nel catalogo COM+, è possibile che venga generato l'errore di compilazione seguente:

"Unable to build custom action named 'Primary output from RegServer (Active)' because the file's Folder property is set to Global Assembly Cache."

Questa installazione non è supportata, perché quando vengono eseguite le azioni personalizzate, gli assembly presenti nella Global Assembly Cache non sono sempre disponibili, in quanto viene eseguito il commit nella GAC.

La soluzione consiste nell'inserire il codice in file diversi e il codice dell'azione personalizzata in un file che non sia diretto alla GAC. Talvolta non è possibile distribuire il codice in questo modo.

Come si crea un collegamento di disinstallazione nel collegamento?

  1. Nella directory del progetto di installazione, creare un nuovo file Uninstall.bat.

  2. Nel progetto di installazione, copiare la proprietà ProductCode, il cui valore dovrebbe essere simile a [12345678-1234-1234-1234-123412341234].

  3. Modificare Uninstall.bat in modo che in una delle righe sia presente la stringa seguente, in cui ProductCode è il valore copiato al passaggio 2:

    Msiexec /x ProductCode

  4. Aggiungere Uninstall.bat alla cartella applicativa del progetto di installazione.

  5. Fare clic con il pulsante destro del mouse su Uninstall.bat, quindi scegliere Crea collegamento per creare un collegamento.

  6. Inserire il collegamento nella cartella del menu Start appropriata del progetto di installazione.

  7. Rinominare il collegamento utilizzando, ad esempio, la dicitura "Disinstalla <NomeApplicazione>".

Dove trovare esempi di utilizzo dei progetti di installazione

Per esempi di utilizzo dei progetti di installazione, vedere Attività e procedure dettagliate relative alla distribuzione.

Come pianificare la distribuzione delle applicazioni per .NET Framework

In questa guida vengono fornite le informazioni necessarie per pianificare e implementare un'efficiente distribuzione delle applicazioni per .NET Framework: Deploying .NET Framework-based Applications (informazioni in lingua inglese).

Dove è possibile eseguire il download dell'SDK di Windows Installer?

L'SDK di Windows Installer può essere scaricato dall'Area download Microsoft:

https://go.microsoft.com/fwlink/?LinkId=161393.

Dove si possono trovare gli aggiornamenti e la Guida di Crystal Reports?

Il software aggiornato e i moduli unione possono essere installati dalla pagina relativa ai download del sito Web BusinessObjects.com, all'indirizzo:

http://support.businessobjects.com/fix/downloads_updates.asp

Come si risolvono i messaggi di errore "Errore di compilazione irreversibile"?

Se viene visualizzato il messaggio di errore "Errore di compilazione irreversibile" durante la compilazione dei progetti di installazione e di distribuzione, leggere il seguente articolo:

"PRB: 'Unrecoverable Build Error' Error Message When You Build Setup and Deployment Projects" (informazioni in lingua inglese) all'indirizzo https://support.microsoft.com/kb/329214/it.

Come si risolvono i messaggi di errore di convalida?

Se vengono visualizzati messaggi di errore, quali An error occurred when validating. HRESULT = '80040155, vedere l'articolo "PRB: "Unrecoverable Build Error" Error Message When You Build Setup and Deployment Projects" all'indirizzo https://support.microsoft.com/kb/329214/it e attenersi alla procedura relativa alle registrazioni mancanti delle intestazioni.

Come si modifica IIS durante la distribuzione delle azioni personalizzate?

Nell'articolo "Modifica di Internet Information Services durante la distribuzione con azioni personalizzate", disponibile all'indirizzo https://msdn.microsoft.com/it-it/library/aa289522(vs.71).aspx(vs.71).aspx(vs.71).aspx (la pagina potrebbe essere in inglese), viene illustrata la risoluzione di problemi comuni. I miglioramenti includono quanto segue:

  • Come modificare le impostazioni di una cartella IIS non disponibili in una cartella Web dell'Editor del file system

  • Come distribuire un'applicazione ibrida che utilizza sia Visual Basic 6 sia Visual Basic .NET e versioni successive.

  • Modifiche nella distribuzione di applicazioni scritte con Visual Studio .NET e versioni successive rispetto alle applicazioni scritte con Visual Basic 6.

Come si esegue la distribuzione di applicazioni ASP.NET?

Per informazioni sulla distribuzione di un'applicazione ASP.NET tramite Visual Studio .NET, vedere Distribuzione di un'applicazione ASP.NET tramite Visual Studio .NET (la pagina potrebbe essere in inglese).

Dopo l'installazione in Windows 2000, l'applicazione non viene eseguita e viene visualizzato un messaggio di avviso in cui si richiede MDAC 2.8

Tutte le applicazioni che fanno riferimento allo spazio dei nomi System.Data dipendono da Microsoft Data Access Components (MDAC) 2.8 o versioni successive. Nella maggior parte dei casi, il file è stato già installato insieme al sistema operativo. Nel caso di Windows 2000 Service Pack 3 e versioni precedenti, potrebbe essere necessario installare il componente con l'applicazione. In tal caso, aggiungere il componente al package del programma di avvio automatico e scaricare il file da Microsoft durante l'installazione. Per ulteriori informazioni, vedere Prerequisiti per la distribuzione dell'applicazione.

Come modificare il livello di autorizzazione per le azioni personalizzate?

Per impostazione predefinita le azioni personalizzate vengono eseguite con privilegi SYSTEM, ma è possibile che un'azione personalizzata richieda più privilegi per completare l'attività. Per modificare questo comportamento predefinito, disabilitare il flag "noimpersonate" nell'azione personalizzata. Per ulteriori informazioni, vedere Opzioni di esecuzione negli script di azioni personalizzate.

Articoli correlati in Microsoft Knowledge Base

Nei seguenti articoli della Knowledge Base vengono fornite informazioni sui problemi di distribuzione di Windows Installer (informazioni in lingua inglese):

Vedere anche

Riferimenti

Proprietà VirtualDirectory

Altre risorse

Distribuzione di applicazioni e componenti

Attività e procedure dettagliate relative alla distribuzione