Condividi tramite


Debug di applicazioni ClickOnce in cui si utilizza System.Deployment.Application

Aggiornamento: novembre 2007

In Visual Studio, la distribuzione ClickOnce consente di configurare le modalità di aggiornamento di un'applicazione. Se, tuttavia, si desidera utilizzare e personalizzare funzionalità di distribuzione avanzate di ClickOnce, è necessario accedere al modello a oggetti di distribuzione fornito da System.Deployment.Application. È possibile utilizzare le API System.Deployment.Application per attività avanzate quali:

  • Creazione di un'opzione "Aggiorna" nell'applicazione

  • Download condizionali su richiesta di vari componenti dell'applicazione

  • Aggiornamenti integrati direttamente nell'applicazione

  • Garanzia del costante aggiornamento dell'applicazione client

Poiché le API System.Deployment.Application si possono utilizzare solo quando un'applicazione viene distribuita con tecnologia ClickOnce, l'unica possibilità di eseguirne il debug consiste nel distribuire l'applicazione utilizzando ClickOnce, stabilire una connessione e quindi eseguirne il debug. Può risultare difficoltoso connettere il programma di debug in tempo, perché spesso il codice viene eseguito all'avvio dell'applicazione e prima di poter connettere il programma di debug. Una soluzione consiste nell'inserire interruzioni o arresti, nel caso di progetti Visual Basic, prima del codice di controllo dell'aggiornamento o su richiesta.

Di seguito è riportata la tecnica di debug consigliata:

  1. Prima di iniziare, archiviare il file di simboli (file con estensione pdb) e di origine.

  2. Distribuire la versione 1 dell'applicazione.

  3. Creare una nuova soluzione vuota. Scegliere Nuovo dal menu File, quindi Progetto. Nella finestra di dialogo Nuovo progetto, aprire il nodo Altri tipi di progetto, quindi selezionare la cartella Soluzioni di Visual Studio. Nel riquadro Modelli selezionare Soluzione vuota.

  4. Aggiungere il percorso di origine archiviato per la nuova soluzione alle proprietà. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nodo della soluzione, quindi fare clic su Proprietà. Nella finestra di dialogo Pagine delle proprietà, selezionare Esegui debug dei file di origine, quindi aggiungere la directory del codice sorgente archiviato. In caso contrario, il debugger trova i file di origine non aggiornati, poiché i percorsi dei file di origine sono registrati nel file con estensione pdb. Se il debugger utilizza file di origine non aggiornati, viene visualizzato un messaggio che indica che l'origine non corrisponde.

  5. Assicurarsi che il debugger sia in grado di trovare i file con estensione pdb. Se questi sono stati distribuiti con l'applicazione, il debugger li trova automaticamente. Inizialmente cerca sempre in prossimità dell'assembly in questione. In caso contrario, è necessario aggiungere il percorso di archiviazione a Percorsi dei file di simboli (pdb), per accedere a questa opzione, dal menu Strumenti, fare clic su Opzioni, quindi aprire il nodo Debug e fare clic su Simboli.

  6. Eseguire il debug di quello che si verifica tra le chiamate di metodo CheckForUpdate e Download/Update.

    Il codice di aggiornamento potrebbe, ad esempio, essere il seguente:

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If My.Application.Deployment.IsNetworkDeployed Then
    
                If (My.Application.Deployment.CheckForUpdate()) Then
    
                    My.Application.Deployment.Update()
                    Application.Restart()
    
                End If
    
            End If
        End Sub
    
  7. Distribuire la versione 2.

  8. Tentare di connettere il debugger alla versione 1 dell'applicazione durante il download di un aggiornamento per la versione 2. In alternativa, utilizzare il metodo System.Diagnostics.Debugger.Break o semplicemente l'oggetto Stop in Visual Basic. È necessario eliminare queste chiamate di metodo dal codice di produzione.

    Si supponga, ad esempio, di sviluppare un'applicazione Windows Form e di disporre di un gestore eventi per questo metodo contenente la logica di aggiornamento. Per eseguirne il debug, è sufficiente connettere il debugger prima che il pulsante sia scelto, quindi impostare un punto di interruzione. Assicurarsi di aprire il file archiviato corretto e impostare il punto di interruzione in tale posizione.

Utilizzare la proprietà IsNetworkDeployed per richiamare le API System.Deployment.Application solo dopo la distribuzione dell'applicazione. Non è possibile richiamare le API durante il debug di Visual Studio.

Vedere anche

Attività

Esempio di tecnologia di distribuzione OnDemand ClickOnce

Riferimenti

System.Deployment.Application