Ich habe eine ClickOnce-deployed-Anwendung, und ich verwende diese derzeit, um das erste Mal zu erkennen, dass eine neue Bereitstellung ausgeführt wird:
%Vor%Es scheint zu funktionieren, nachdem ClickOnce eine automatische Aktualisierung durchgeführt hat.
Aber es funktioniert überhaupt nicht, wenn der Benutzer auf der Installationswebsite zu publish.htm wechselt und eine neuere Version manuell installiert. Gibt es eine Möglichkeit, beide dieser Bedingungen zuverlässig zu erkennen?
Bearbeiten: Die Situation, die ich versuche zu erklären: Manchmal hören Nutzer, dass ein Update veröffentlicht wurde, und gehen manuell zu publish.htm, um die neue Version zu erhalten, anstatt die Anwendung zu starten und Lassen Sie ClickOnce das Upgrade übernehmen. Bei ClickOnce ist dies scheinbar nicht von einer erstmaligen Installation zu unterscheiden. Stimmt das?
Lösungscode : Ich habe am Ende eine ClickOnce-Hilfsklasse mit dem folgenden Schlüsselabschnitt erstellt:
%Vor%Fügen Sie eine zusätzliche Datei in Ihre ClickOnce-Installation mit dem Namen justInstalled.txt (oder etwas) ein. Chedk für diese Datei, wenn die App startet. Wenn Sie es finden, löschen Sie es und führen Sie Code für Ihren ersten Lauf dieser Bereitstellung aus. Die Datei bleibt bis zur nächsten Bereitstellung / Aktualisierung erhalten.
Ja, der IsFirstRun wird für jede Programmversion zurückgesetzt ...
Dies ist die Ausnahme von Microsoft:
Der Wert dieser Eigenschaft wird zurückgesetzt wann immer der Benutzer von einem aufrüstet Version zum nächsten. Wenn du möchtest Führen Sie eine Operation nur die sehr Zum ersten Mal jede Version des Anwendung ausgeführt wird, müssen Sie Führen Sie einen zusätzlichen Test durch, z Überprüfen auf das Vorhandensein einer Datei Sie haben das erste Mal erstellt oder gespeichert ein Flag, das Anwendungseinstellungen verwendet.
was mehr oder weniger Antworten Sie in Frage stellt ...