Langsamer Anwendungsstart mit ClickOnce-Bereitstellung

9

Wir stellen unsere Anwendung mit ClickOnce bereit, und wir haben festgestellt, dass die Anwendung beim Starten der Anwendung durch Klicken auf das ClickOnce-Desktopsymbol langsamer (mindestens 30-60 Sekunden) gestartet wird, als während sie direkt von der EXE gestartet wurde. Ich habe gesehen, dass es kein unbekanntes Problem ist ( Langsamer Start von Clickonce winforms Anwendung nach dem Update ), aber es scheint, dass es immer noch ungelöst ist. Ich frage mich, warum das passieren würde und wie man das beheben könnte.

Ich benutze nur eine Maschine, also denke ich, dass es nicht mit der Maschine zusammenhängt, nicht mit Antiviren.

Ich bemerke während des Startvorgangs ein anderes Speicherverwaltungsmuster: Die ClickOnce-Bereitstellung benötigt mehr Zeit, und nach einiger Zeit wird die Speicherfreigabe aufgehoben. Wir sprechen immer noch von 12 MByte Unterschied (67MB via ClickOnce, 50 über direkte .exe).

Das macht mich verrückt ...

Danke

    
Massimo 11.02.2016, 09:12
quelle

2 Antworten

2
  

Ich denke, es ist nicht maschinell, nicht mit Viren zusammenhängenden.

Sie müssen diese Hypothese beweisen, indem Sie den gleichen Antivirus installieren, den Ihr Client auf einer dev-VM hat. Wenn Sie den langsamen Start nicht reproduzieren können, vergleichen Sie ProcMon-Traces zwischen den Computern.

Ich glaube, Hans ist am Geld und der Anti-Virus ist der wahrscheinlichste Schuldige, wie die richtige Antwort in der QA Sie beziehen sich auf Ihre Frage:

  

Ich habe gesehen, sehr schlechte Leistung (Minuten im Vergleich zu ein paar Sekunden) für eine neu eingerichtete erste Run.NET-Anwendung ist die Benutzer Antivirus-Software ausgeführt, wie das Antivirus-Tool überprüft die neu Jitted Assemblys sind nicht bösartig.

Stellen Sie sicher, dass Sie .NET Framework 3.5 SP1 oder höher verwenden, da "im Bereich des Startvorgangs erhebliche Leistungsverbesserungen zu verzeichnen sind. Insbesondere bei WPF-Anwendungen" und 3.5 SP1 enthält Splash Screens.

Ein Startbildschirm könnte eine schnelle (temporäre) Lösung sein. Leider keine ideale Lösung.

ClickOnce wird jetzt ziemlich alt und es gab viele Fortschritte in diesem Bereich. Warum also nicht eine andere Strategie mit einem anderen Bereitstellungsmechanismus wie Windows Installer und ein Update-Menü in der App verwenden? Ich erläutere die Schritte, um ein MSI-Installationsprogramm zu auf demselben Pfad zu installieren, wenn eine Anwendung aktualisiert wird .

Wenn Sie nicht nur ClickOnce, sondern auch die neueste Version verwenden möchten, ist es besser, einen Webservice zu haben, den die App beim Start startet und das Update herunterlädt und ausführt, sobald eine neue Version veröffentlicht wird.

>

Nimm auch Tipps von Google in diesem Bereich. Sie erinnern sich an den Artikel von Jeff Atwood: Ссылка

Wenn Sie ClickOnce nicht verwenden, können Sie Dinge wie NGEN UND bsdiff verwenden, möglicherweise sogar Google Zucchini .

Es gibt andere Möglichkeiten, den Start einer ClickOnce-Anwendung zu beschleunigen: hier diskutiert .

Auch wenn dies Ihre Frage vielleicht nicht direkt beantwortet, gibt es hoffentlich einen Denkanstoß zur Identifizierung der Ursache und / oder eine andere aktualisierte Methode für die Einführung von Updates.

    
Jeremy Thompson 17.02.2016 03:22
quelle
0

Wenn Sie den Build veröffentlichen, wählen Sie bitte die Option, die App im Offline-Modus auszuführen. Andernfalls versucht das Clickonce-Installationsprogramm, die App von Ihrem Server anstatt von der lokalen exe zu starten.

Bitte lassen Sie es mich wissen, wenn es andere Szenarien gibt, die untersucht werden müssen oder das hilft.

Danke,

    
Sathik Khan 20.02.2016 06:40
quelle

Tags und Links