Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Visual Studio können Sie mit der ClickOnce-Bereitstellung konfigurieren, wie eine Anwendung aktualisiert wird. Wenn Sie jedoch erweiterte ClickOnce-Bereitstellungsfeatures verwenden und anpassen möchten, benötigen Sie Zugriff auf das von ihnen bereitgestellte System.Deployment.ApplicationBereitstellungsobjektmodell. Sie können die System.Deployment.Application APIs für erweiterte Aufgaben verwenden, z. B.:
Erstellen einer Option "Jetzt aktualisieren" in Ihrer Anwendung
Bedingte Downloads bei Bedarf verschiedener Anwendungskomponenten
Direkt in die Anwendung integrierte Updates
Gewährleistung, dass die Clientanwendung immer up-to-date ist
Da die System.Deployment.Application APIs nur funktionieren, wenn eine Anwendung mit ClickOnce-Technologie bereitgestellt wird, besteht die einzige Möglichkeit zum Debuggen darin, die Anwendung mithilfe von ClickOnce bereitzustellen, sie anzufügen und dann zu debuggen. Es kann schwierig sein, den Debugger frühzeitig anzufügen, da dieser Code häufig ausgeführt wird, wenn die Anwendung gestartet und ausgeführt wird, bevor Sie den Debugger anfügen können. Eine Lösung besteht darin, Unterbrechungen (oder Stopps für Visual Basic-Projekte) vor dem Updateüberprüfungscode oder On-Demand-Code zu platzieren.
Die empfohlene Debuggingtechnik lautet wie folgt:
Hinweis
Die ApplicationDeployment Klasse und APIs im System.Deployment.Application Namespace werden in .NET Core und .NET 5 und höher nicht unterstützt. In .NET 7 wird eine neue Methode für den Zugriff auf Anwendungsbereitstellungseigenschaften unterstützt. Weitere Informationen finden Sie unter Access ClickOnce-Bereitstellungseigenschaften in .NET. .NET 7 unterstützt nicht das Äquivalent von ApplicationDeployment-Methoden.
Bevor Sie beginnen, stellen Sie sicher, dass die Symboldateien und Quelldateien archiviert sind.
Stellen Sie Version 1 der Anwendung bereit.
Erstellen Sie eine neue, leere Lösung. Wählen Sie im Menü "Datei " die Option "Neu" und dann "Projekt" aus. Öffnen Sie im Dialogfeld "Neues Projekt " den Knoten " Andere Projekttypen ", und wählen Sie dann den Ordner "Visual Studio-Lösungen " aus. Wählen Sie im Vorlagen-Bereich Leere Lösung aus.
Fügen Sie den archivierten Quellspeicherort den Eigenschaften für diese neue Lösung hinzu. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektmappenknoten, und wählen Sie dann "Eigenschaften" aus. Wählen Sie im Dialogfeld Eigenschaftenseiten die Option "Quelldateien debuggen" aus, und fügen Sie dann das Verzeichnis des archivierten Quellcodes hinzu. Andernfalls findet der Debugger die veralteten Quelldateien, da die Quelldateipfade in der PDB-Datei aufgezeichnet werden. Wenn der Debugger veraltete Quelldateien verwendet, wird eine Meldung angezeigt, dass die Quelle nicht übereinstimmt.
Stellen Sie sicher, dass der Debugger die PDB-Dateien finden kann. Wenn Sie die Dateien mit Ihrer Anwendung bereitgestellt haben, findet der Debugger sie automatisch. Sie sieht immer neben der betreffenden Assembly zuerst aus. Andernfalls müssen Sie den Archivpfad zur Liste der Symboldateispeicherorte hinzufügen.
Öffnen Sie den Bereich "Extras" (oder "Debuggen")>-Optionen, und erweitern Sie den Abschnitt "Alle Einstellungen>Debugging>Symbole>Suchpfade". Hinzufügen, Ändern der Reihenfolge oder Entfernen von Elementen aus der Liste der Speicherorte der Symboldatei (PDB).
Öffnen Sie das Dialogfeld "Extras" (oder "Debugoptionen")>, und erweitern Sie den Abschnitt">". Elemente hinzufügen, die Reihenfolge ändern oder Elemente aus der Liste der Suchpfade für die .pdb-Symboldatei entfernen.
Debuggen Sie, was zwischen den Aufrufen der
CheckForUpdate-MethodenDownload/Updategeschieht.Der Updatecode kann z. B. wie folgt aussehen:
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 SubBereitstellen von Version 2.
Versuchen Sie, den Debugger an die Version 1-Anwendung anzufügen, während es ein Update für Version 2 herunterlädt. Alternativ können Sie die
System.Diagnostics.Debugger.BreakMethode oder einfachStopin Visual Basic verwenden. Natürlich sollten Sie diese Methodenaufrufe nicht im Produktionscode belassen.Angenommen, Sie entwickeln eine Windows Forms-Anwendung, und Sie verfügen über einen Ereignishandler für diese Methode mit der Aktualisierungslogik darin. Um dies zu debuggen, fügen Sie einfach an, bevor die Schaltfläche gedrückt wird, und legen Sie dann einen Haltepunkt fest (stellen Sie sicher, dass Sie die entsprechende archivierte Datei öffnen und den Haltepunkt dort festlegen).
Verwenden Sie die IsNetworkDeployed Eigenschaft, um die System.Deployment.Application APIs nur dann aufzurufen, wenn die Anwendung bereitgestellt wird. Die APIs sollten während des Debuggens in Visual Studio nicht aufgerufen werden.