2010-08-04 15 views
7

So habe ich meine Anwendung in C# entwickelt. Ich bin bereit, es zu implementieren. Ich möchte es so machen, dass Benutzer es immer von meiner Website starten (damit sie immer Updates, keine Installation usw. erhalten).C# Bereitstellen meiner Anwendung - klicken Sie nur aus dem Web

Ist ClickOnce der richtige Weg, dies zu tun?

Ich habe versucht, die Bereitstellung von Clickonce auf meinen Server und ein paar Dinge, springen auf mich aus:

1) Der Nutzer die Möglichkeit gegeben wird, ein Setup oder starten Sie die .application Datei ausführen - was ist der Unterschied? Kann es das nicht selbst erkennen?

2) Wenn ich versuche, die .application "zu starten", bittet sie, sie auf meinen Computer herunterzuladen. Wie auch immer, um die Datei direkt aus dem Browser zu starten?

3) Nachdem ich die .application-Datei heruntergeladen und ausgeführt habe, erhalte ich eine Fehlermeldung mit der folgenden Meldung: "Bereitstellung und Anwendung haben keine übereinstimmenden Sicherheitszonen."

Antwort

9

Ja, ClickOnce passt perfekt zu Ihren Anforderungen.

  1. Die setup.exe oder „Bootstrap“, wie es genannt wird, verwendet wird, erforderlichen Komponenten zu installieren wie das .NET Framework und Microsoft Installer, da es das .NET-Framework ist, dass die Clickonce-Laufzeit enthält, die benötigt wird, Installieren Sie Ihre Anwendung. Der Bootstrapper muss nur einmal und nur auf Computern verwendet werden, auf denen diese Voraussetzungen nicht vorhanden sind. Danach wird nur die Datei .application, die als "Bereitstellungsmanifest" bezeichnet wird, für Aktualisierungen verwendet. Wenn Sie mit ClickOnce veröffentlichen, wird eine Publish.htm-Datei erstellt, die einen JavaScript-Code enthält, der erkennt, ob der Benutzer die erforderlichen Komponenten installiert hat. Wenn der Benutzer dies nicht tut, wird eine Schaltfläche angezeigt, die mit setup.exe verknüpft ist. Andernfalls wird eine Schaltfläche angezeigt, die direkt mit der Datei .application verknüpft ist. Sie können diese Seite verwenden (oder eine davon basierend erstellen), um Ihren Benutzern eine möglichst kurze Installationserfahrung zu bieten.

  2. Entweder ist das .NET Framework wird auf der Client-Computer installiert ist (in diesem Fall das Bootstrap-Programm) oder Ihr Web-Server ist nicht richtig konfiguriert, und so nicht die .application Erweiterung nicht assoziieren mit dem MIME-Typ von application/x-ms-application . Erstellen Sie diese Zuordnung, um das Problem zu lösen. Ich empfehle auch, einige HTTP-Header hinzuzufügen, um den Cache im Bereitstellungsmanifest zu deaktivieren, da der Browser des Benutzers ihn sonst zwischenspeichern kann und dazu führen kann, dass dem Benutzer Updates fehlen.

  3. Sie können die Bereitstellungsmanifestdatei nicht lokal für eine ClickOnce-Installation herunterladen und ausführen, die an einem Webspeicherort veröffentlicht wurde, da ClickOnce der lokalen Installation eine höhere Vertrauensstufe zuweist (z. B. vom lokalen Computer oder einer Netzwerkfreigabe). Das Anwendungsmanifest verweist jedoch auf eine Installationsquelle im Web, die eine niedrigere Vertrauensstufe aufweist und daher fehlschlägt. Sobald Sie Problem 2 gelöst haben, wird dieses Problem ebenfalls gelöst.

+0

Ausgezeichnete Antworten. Noch ein paar Fragen: 1) Sollte ich Benutzer mit der Setup-Datei oder der .Application-Datei verknüpfen? 2) Es startet ordnungsgemäß in IE, aber nicht Firefox. In Firefox fragt es, um die Datei herunterzuladen. Ist das ein MIME-Typ-Config-Problem? Irgendwelche Tipps dazu (Linux/Apache-Server) –

+0

@wydyna: Danke! 1. Ich habe die Antwort redigiert, um über Publish.htm zu sprechen. 2. Um eine ClickOnce-Anwendung von Firefox zu installieren, benötigen Sie ein Plug-In, wie das von Microsoft bereitgestellte (http://windowsclient.net/wpf/wpf35) /wpf-deploying-clickonce-ie-firefox.aspx) mit .NET Framework 3.5 ** SP1 ** oder einem Plug-In von Drittanbietern wie [FFClickOnce] (https://addons.mozilla.org/en -US/firefox/addon/1608 /). –

+0

Was sind meine Möglichkeiten mit Firefox/Chrome/anderen Browsern da draußen? Es scheint auch nicht zu erkennen, ob der Benutzer das Setup ausgeführt hat, wie Sie in Ihrem Beitrag erwähnt haben. Es präsentiert einfach 2 Links und fordert den Benutzer auf, es herauszufinden. ZB: http://www.kirupafx.com/clickonce/publish.htm –

Verwandte Themen