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:
Prima di iniziare, archiviare il file di simboli (file con estensione pdb) e di origine.
Distribuire la versione 1 dell'applicazione.
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.
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.
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.
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
Distribuire la versione 2.
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