Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In Visual Studio kunt u met ClickOnce-implementatie configureren hoe een toepassing wordt bijgewerkt. Als u echter geavanceerde ClickOnce-implementatiefuncties wilt gebruiken en aanpassen, hebt u toegang nodig tot het implementatieobjectmodel van System.Deployment.Application. U kunt de System.Deployment.Application API's gebruiken voor geavanceerde taken, zoals:
Een optie Nu bijwerken maken in uw toepassing
Voorwaardelijke, op aanvraag downloads van verschillende toepassingsonderdelen
Updates die rechtstreeks in de toepassing zijn geïntegreerd
Garanderen dat de clienttoepassing altijd up-to-date is
Omdat de System.Deployment.Application API's alleen werken wanneer een toepassing wordt geïmplementeerd met ClickOnce-technologie, is de enige manier om fouten op te sporen door de toepassing te implementeren met ClickOnce, eraan te koppelen en vervolgens fouten op te sporen. Het kan lastig zijn om het foutopsporingsprogramma vroeg genoeg te koppelen, omdat deze code vaak wordt uitgevoerd wanneer de toepassing wordt gestart en uitgevoerd voordat u het foutopsporingsprogramma kunt koppelen. Een oplossing is het plaatsen van onderbrekingen (of stops, voor projecten in Visual Basic) voorafgaand aan uw code voor update-controle of code voor uitvoering op aanvraag.
De aanbevolen foutopsporingstechniek is als volgt:
Opmerking
De ApplicationDeployment klasse en API's in de System.Deployment.Application naamruimte worden niet ondersteund in .NET Core en .NET 5 en latere versies. In .NET 7 wordt een nieuwe methode voor het openen van toepassingsimplementatie-eigenschappen ondersteund. Zie Access ClickOnce-implementatie-eigenschappen in .NET voor meer informatie. .NET 7 biedt geen ondersteuning voor het equivalent van ApplicationDeployment-methoden.
Controleer voordat u begint of de symboolbestanden (.pdb) en bronbestanden zijn gearchiveerd.
Implementeer versie 1 van de toepassing.
Maak een nieuwe, lege oplossing. Selecteer Nieuw in het menu Bestand en vervolgens Project. Open in het dialoogvenster Nieuw project het knooppunt Andere projecttypen en selecteer vervolgens de map Visual Studio Solutions . In het deelvenster Sjablonen selecteer Lege oplossing.
Voeg de gearchiveerde bronlocatie toe aan de eigenschappen voor deze nieuwe oplossing. Klik met de rechtermuisknop op het oplossingsnode in Solution Explorer en selecteer Eigenschappen. Selecteer in het dialoogvenster Eigenschappenpagina's de foutopsporingsbronbestanden en voeg vervolgens de map van de gearchiveerde broncode toe. Anders vindt het foutopsporingsprogramma de verouderde bronbestanden, omdat de paden van het bronbestand worden vastgelegd in het .pdb-bestand . Als het foutopsporingsprogramma verouderde bronbestanden gebruikt, ziet u een bericht waarin wordt aangegeven dat de bron niet overeenkomt.
Zorg ervoor dat het foutopsporingsprogramma de PDB-bestanden kan vinden. Als u de bestanden met uw toepassing hebt geïmplementeerd, vindt het foutopsporingsprogramma deze automatisch. Het kijkt altijd eerst naast de betreffende assembly. Anders moet u het archiefpad toevoegen aan uw lijst met symboolbestandslocaties.
Open het deelvenster Extra (of Foutopsporing) >en vouw de sectie Alle instellingen>voor het opsporen van zoeklocaties>voor> symbolen uit. Items toevoegen, volgorde wijzigen of verwijderen uit de lijst met locaties van het symboolbestand (.pdb ).
Open het dialoogvenster Extra (of Foutopsporing) >opties en vouw de sectieSymbolen> uit. Items toevoegen, volgorde wijzigen of verwijderen uit de lijst met zoeklocaties van het symboolbestand (.pdb ).
Debuggen wat er gebeurt tussen de
CheckForUpdate- enDownload/Update-methoden aanroepen.De updatecode kan bijvoorbeeld als volgt zijn:
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 SubVersie 2 implementeren.
Probeer het foutopsporingsprogramma toe te voegen aan de toepassing versie 1 terwijl er een update voor versie 2 wordt gedownload. U kunt ook de
System.Diagnostics.Debugger.Breakmethode gebruiken of gewoonStopin Visual Basic. U moet deze methodeaanroepen natuurlijk niet in productiecode achterlaten.Stel dat u een Windows Forms-toepassing ontwikkelt en u een eventhandler voor deze methode hebt met de update logica. Als u fouten wilt opsporen, voegt u dit toe voordat de knop wordt ingedrukt en stelt u vervolgens een onderbrekingspunt in (zorg ervoor dat u het juiste gearchiveerde bestand opent en het onderbrekingspunt daar instelt).
Gebruik de IsNetworkDeployed eigenschap om de System.Deployment.Application API's alleen aan te roepen wanneer de toepassing wordt geïmplementeerd. De API's mogen niet worden aangeroepen tijdens foutopsporing in Visual Studio.