2010-02-16 3 views
5

Ich verwende VS2008, um meine Anwendungsdateien mit ClickOnce zu veröffentlichen. Ich habe irgendwo gelesen, dass ClickOnce intelligent nur teilweise Aktualisierungen durchführt; Das bedeutet, dass nur Dateien von der Netzwerkfreigabe heruntergeladen werden, wenn sich die Datei bei nachfolgenden Aktualisierungen geändert hat. Dies funktionierte jedoch nicht für mich. Also habe ich etwas recherchiert und bin auf diesen MSDN-Artikel gestoßen - http://msdn.microsoft.com/en-us/library/ms404267.aspx. Es besagt, dass wenn wir mit VS bauen, es die Teilupdates nicht durchführt. Kann mir jemand sagen, warum das so ist? Wenn ja, gibt es eine Möglichkeit, die referenzierten DLLs zumindest zum ersten Mal herunterzuladen. Ich verwende Microsoft Practices Enterprise Library und einige Steuerelemente von Drittanbietern (mit riesigen Theme-Dateien).Partielle Anwendungsupdates in ClickOnce mit Visual Studio-Build

Danke, Uniball

Antwort

7

Teil Updates auch in Clickonce gut funktionieren, wenn sie in VS. Aufbau Wenn Sie jedoch eine Lösung aus ein paar Projekten (z. B. ein paar Klassenbibliotheksprojekten und einer ausführbaren Datei) haben, ändert sich bei jeder Neuerstellung aller Projekte der Zeitstempel der Assemblydateien, selbst wenn der Code nicht vorhanden ist. Da ClickOnce nur die Zeitstempel betrachtet, um zu entscheiden, ob eine Datei aktualisiert werden muss, werden die (unveränderten) Assemblys beim Aktualisieren des Benutzers als neue Dateien abgerufen.

Die Problemumgehung besteht darin, beliebige abhängige Projekte aus der Lösungsdatei der ausführbaren Datei abzurufen und separat zu erstellen. Das bedeutet, dass Assemblys, deren Code sich nicht sehr oft ändert, nur einmal zum Client gezogen werden. Wenn Sie die Assembly ändern müssen, öffnen Sie einfach ihre Lösung und nehmen Sie die Änderung vor. Öffnen Sie dann erneut die Lösung der ausführbaren Datei, und erstellen Sie sie erneut. Das nächste ClickOnce-Update wird sowohl die exe als auch die geänderte Assembly herunterziehen.

Hoffe, das ist klar genug!

+0

Danke! Das hat die Dinge aufgeräumt. – user274816

+0

Wenn Sie dies versuchen und feststellen, dass die DLLs noch heruntergeladen werden, benennen Sie sie. Ich denke, dass sie stark benannt werden müssen, damit ClickOnce sie NICHT herunterladen kann, auch wenn sich die Versionen nicht geändert haben. – RobinDotNet

+0

Für unsere Anwendung mussten wir das Flag Full-Trust-Anwendung in den Projekteinstellungen für die partielle DLL-Aktualisierung setzen, nicht nur stark benennen – VMAtm