Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In Visual Studio la distribuzione ClickOnce consente di configurare la modalità di aggiornamento di un'applicazione. Tuttavia, se si desidera usare e personalizzare le funzionalità avanzate di distribuzione ClickOnce, è necessario accedere al modello a oggetti di distribuzione fornito da System.Deployment.Application. È possibile usare le System.Deployment.Application API per attività avanzate, ad esempio:
Creazione di un'opzione "Aggiorna ora" nell'applicazione
Download condizionali su richiesta di vari componenti dell'applicazione
Aggiornamenti integrati direttamente nell'applicazione
Garanzia che l'applicazione client sia sempre up-to-date
Poiché le System.Deployment.Application API funzionano solo quando un'applicazione viene distribuita con la tecnologia ClickOnce, l'unico modo per eseguirne il debug consiste nel distribuire l'applicazione usando ClickOnce, collegarla e quindi eseguirne il debug. Può essere difficile collegare il debugger in anticipo, perché questo codice viene spesso eseguito all'avvio e all'esecuzione dell'applicazione prima di poter collegare il debugger. Una soluzione consiste nell'inserire interruzioni (o arresti, per i progetti Visual Basic) prima del codice di controllo dell'aggiornamento o del codice su richiesta.
La tecnica di debug consigliata è la seguente:
Annotazioni
La ApplicationDeployment classe e le API nello System.Deployment.Application spazio dei nomi non sono supportate in .NET Core e .NET 5 e versioni successive. In .NET 7 è supportato un nuovo metodo di accesso alle proprietà di distribuzione dell'applicazione. Per altre informazioni, vedere Accedere alle proprietà di distribuzione ClickOnce in .NET. .NET 7 non supporta l'equivalente dei metodi ApplicationDeployment.
Prima di iniziare, verificare che i file simbolo (con estensione pdb) e i file di origine siano archiviati.
Distribuire la versione 1 dell'applicazione.
Crea una nuova soluzione vuota. Scegliere Nuovo dal menu File, quindi Progetto. Nella finestra di dialogo Nuovo progetto aprire il nodo Altri tipi di progetto e quindi selezionare la cartella Soluzioni di Visual Studio . Nel riquadro Modelli selezionare Soluzione vuota.
Aggiungere il percorso di origine archiviato alle proprietà per questa nuova soluzione. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo della soluzione e quindi scegliere Proprietà. Nella finestra di dialogo Pagine delle proprietà selezionare Debug file di origine e quindi aggiungere la directory del codice sorgente archiviato. In caso contrario, il debugger trova i file di origine non aggiornati, perché i percorsi dei file di origine vengono registrati nel file con estensione pdb . Se il debugger usa file di origine non aggiornati, viene visualizzato un messaggio che informa che l'origine non corrisponde.
Assicurarsi che il debugger sia in grado di trovare i file con estensione pdb . Se i file sono stati distribuiti con l'applicazione, il debugger li trova automaticamente. Cerca sempre prima accanto all'assembly in questione. In caso contrario, è necessario aggiungere il percorso di archivio all'elenco di percorsi dei file di simboli.
Aprire il riquadro Strumenti (o Debug) >Opzioni e espandere la sezione Tutte le impostazioni>Debugging>Symbols>Percorsi di ricerca. Aggiungere, modificare l'ordine o rimuovere elementi dall'elenco Percorsi del file di simboli (.pdb).
Aprire la finestra di dialogo Strumenti (o Debug) >Opzioni ed espandere la sezione Debugging>Simboli. Aggiungi, modifica l'ordine o rimuovi elementi dall'elenco dei percorsi di ricerca del file di simboli (.pdb).
Eseguire il debug di ciò che accade tra le chiamate al metodo
CheckForUpdatee le chiamate ai metodiDownload/Update.Ad esempio, il codice di aggiornamento potrebbe 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 SubDistribuire la versione 2.
Tentare di collegare il debugger all'applicazione versione 1 mentre scarica un aggiornamento per la versione 2. In alternativa, è possibile usare il
System.Diagnostics.Debugger.Breakmetodo o semplicementeStopin Visual Basic. Naturalmente, non è consigliabile lasciare queste chiamate al metodo nel codice di produzione.Si supponga, ad esempio, di sviluppare un'applicazione Windows Form e di disporre di un gestore eventi per questo metodo con la logica di aggiornamento. Per eseguire il debug, è sufficiente allegare prima che il pulsante venga premuto, quindi impostare un punto di interruzione (assicurarsi di aprire il file archiviato appropriato e impostare il punto di interruzione in tale punto).
Usare la IsNetworkDeployed proprietà per richiamare le System.Deployment.Application API solo quando l'applicazione viene distribuita. Le API non devono essere richiamate durante il debug in Visual Studio.