Frage

Ist es möglich, Clickonce-Funktionalität zu einer bestehenden Anwendung?

einführen

Das Szenario ist: Version 1.0 ist bereits auf den Kunden installiert worden. Ich möchte ihnen ein neues Setup-Paket senden, die auf 1,1 Upgrade wird, die Clickonce-Funktionalität, wodurch zukünftige Upgrades „mühelos“ zu machen.

Abgesehen davon, gibt es andere Lösungen für diese Art von Problem?

PS: Die ursprüngliche Anwendung wurde entwickelt, mit Visual Studio 2005 (das heißt, .NET 2.0). Ich verwende Visual Studio 2008 jetzt.

War es hilfreich?

Lösung

Nein, es ist nicht möglich, mit einem Standard-Clickonce-Bereitstellungsszenario.

Clickonce ist eine Sandbox-Installation auf der Client-Seite. Es wird nicht wissen, über die Version 1.0, die bereits installiert sind. Es geht einfach um zu sehen, ob seine GUID bereits über Clickonce und wenn ja, installiert aktualisieren sie es, aber nur, wenn die vorherige Version wurde über Clickonce bereitgestellt.

In Ihrem Fall, wenn der Benutzer Version installiert 1.1, werden beide Versionen nebeneinander installiert werden. Version 1.0 wird nicht aktualisiert werden, da Clickonce nicht weiß, gibt es einen Verein, da sie über ein anderes Verfahren eingesetzt wurde. Wenn sie nicht wollen, Version 1.0 nicht mehr, sie müssen es manuell entfernen. Sobald Sie die Version 1.1 im Einsatz über Clickonce haben, werden nachfolgende Updates korrekt funktionieren.

Sie denken von Clickonce nicht als etwas, das man „einschließlich“ ist, denken Sie an sie als eine Methode zur Bereitstellung.

Alternativ:

Das sollte ich klären, was Sie suchen ist nicht möglich, mit Standard-Clickonce-Bereitstellung. Aber Sie erwähnten Sie gehen sie eine anfängliche Setup-Datei zu senden. In diesem Fall können Sie eine Abhilfe, die möglich ist:

  1. Script der Setup-Datei der Version 1.0-Installation automatisch
  2. entfernen
  3. Script der Setup-Datei, die Clickonce-Installation zu starten.

Für die nachfolgende Updates, zeigen Sie einfach den Benutzer auf das „reine“ Clickonce-Setup-Paket und Ihr Updates sollte funktionieren.

Andere Tipps

Stellen Sie sicher, dass Ihre Clickonce-Bereitstellung zu testen, sehr gründlich in der Umgebung Ihres Kunden. Ich Weglassen Details hier, aber es gibt viele Probleme mit Clickonce. Ich habe für 3,5 Jahren eine Clickonce-Anwendung zu unterstützen und in viele Probleme mit Manifesten laufen, dass sie manuell die Ordner Sandbox-Speicher löschen, um die Updates richtig installieren usw. - wenn Sie online für Clickonce-Probleme suchen, die Sie ziemlich finden einige Probleme in den MSDN-Foren und anderswo, von denen viele MS scheint nicht zu wollen, zu lösen, wie sie seit Visual Studio 2005 geöffnet waren.

Beachten Sie außerdem, einen potenziellen Gotcha in Clickonce vor .NET 3.5 SP1. Wenn Sie nicht über Ihr eigenes Software-Deployment-Zertifikat von einem CA von den Client-Rechnern erkannt, Visuell Studio verwendet ein „vorübergehendes“ Zertifikat (* .pfx), die ein Jahr nach Schaffung abläuft. Nach dieser Zeit werden nachfolgende Update-Versionen wahrscheinlich nicht installieren, und beängstigende Nachrichten über Ablaufdatum des Zertifikats zeigen Benutzer. Microsoft fixiert diese .NET 3.5 SP1, aber Sie hatte zu graben durch die Release Notes die Kommentare zu finden, dass die vorübergehende oder dauerhafte Zertifikate wurden nicht mehr benötigt. Also -., Wenn Sie kein öffentliches CA-Zertifikat haben, und Sie werden diese Anwendung für einige Zeit unterstützen, dann stellen Sie sicher, dass Sie auf .NET 3.5 SP1

auf der Komplexität des Szenarios Je, da man über andere Lösungen fragt, wir Liquidation mit einem Ansatz „um Ihren eigenen Rolle“, dass etwas geht.

Jede aktualisierte Version erhöht die Assemblierung-Version je nach Bedarf.

Build enthält einen benutzerdefinierten Schritt, um eine Datei mit der neuen Montage Version automatisch zu generieren.

Die Bereitstellung-Projekt kopiert die Versionsdatei in das Ausgabeverzeichnis mit MSI.

Jedes Mal, wenn die installierte Anwendung läuft, ist es seine eigene Version auf die Version in der Versionsdatei im Ordner bereitstellen vergleicht. Wenn sie sich unterscheiden, die Anwendung beenden und das MSI starten, die wir setzen, um automatisch ältere Anwendungsversionen zu entfernen.

Dies ist eine „schlechte Clickonce des Menschen“ für eine Umgebung, wo es keine Anwendung Deployment-Tools überhaupt avl (nicht einmal AD Anwendung Werbung), so haben wir tun. Auch hier kann nicht anspruchsvoll genug für Sie diesen Ansatz sein, aber es funktioniert für uns in Ordnung.

Viel Glück.

Der beste Weg, ich weiß, wäre ihr ein Installationsprogramm zu senden, dass:

  1. Deinstalliert die aktuelle Version
  2. Startet die Clickonce-Anwendung im Web befindet.

Damit würde man eine vernünftige Upgrade Erfahrung haben, und von dort aus können Clickonce die Upgrades auf eigene handhaben.

Ich denke, in diesem Fall die „einfachste“ Lösung einfach sein würde, um die Clickonce-Bereitstellung für die Version 1.1 zu verwenden und als Teil dieser neuen Version der Anwendung eine Standard-Konfigurationsdatei mit einer First-Run-Flagge irgendeine Art hat, dass wenn es wird das erste Mal durch den Benutzer laufen und sieht, dass First-Run-Flagge, sieht es für die vorherige Version, Kopien über alle vorhandenen Konfigurationseinstellungen und dann deinstalliert die vorherige Version automatisch.

Es würde einige Programmierung auf Ihrer Seite, aber es ist die Lösung, die ich in einem früheren Job ließ sich auf eine ähnliche Aufgabe zu tun, ein Dienstprogramm zu aktualisieren Clickonce zu verwenden, wo es nicht so vor hatte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top