2012-04-11 6 views
9

Unsere App, verteilt über ClickOnce, dauert im Durchschnitt 10,8 Sekunden um zu starten. Nach dem Ausführen von ngen auf der EXE (in dem Verzeichnis, in dem ClickOnce es installiert hat), wird es im Durchschnitt in 6,4 Sekunden gestartet. Dies ist offensichtlich eine enorme Beschleunigung (40%) und ich würde gerne die ngen-ification nutzen, wenn möglich.Ist es möglich, NGen-Images vorab zu generieren, sodass Kunden dies nicht tun müssen?

Rons Antwort auf Is it possible to use NGen with ClickOnce deployment? zeigt, wie es auf der Maschine des Kunden durchgeführt werden, vorausgesetzt, ich glaube, er läuft Windows XP, wie es Administrator-Rechte will auf meinem Windows 7 Box, so dass nicht wie scheint eine generische Lösung.

Darüber hinaus dauert ngen 40 Sekunden auf meiner Box, um alle Baugruppen dieser App zu kompilieren.

Also ideal, würde ich gerne Pre-ngen unsere App für alle (großen) Architekturen als Teil des Build-Prozesses, so dass es an den Kunden versandt werden, ohne dass der Benutzer ein "ok zu akzeptieren Als Administrator ausführen? " Popup und warten Sie dann 40 Sekunden.

Ist das möglich?

+0

Die NGen-Ausgabe ist architekturspezifisch. Und da es unwahrscheinlich ist, dass Ihr Computer mit den Produktionsgeräten übereinstimmt, wird dies wahrscheinlich nicht so funktionieren, wie Sie es sich wünschen. –

+0

@CodyGray Wie in meiner Frage erwähnt, wäre ich bereit für alle wichtigen Architekturen vor-ngen. Wenn wir x86 und AMD64 nur das 95% der Kunden abdecken würde, denke ich ... –

Antwort

9

Sie können dies nicht tun, ohne den administrativen Zugriff auf Windows 7.

Das Problem ist nicht die tatsächliche ngen Generation des nativen Bild aber die Installation in den nativen Bildcache (C: \ windows \ assembly \ nativeImages_v # xxxxxxxxx), die administrative Berechtigungen erfordert. Selbst wenn Sie einen Weg gefunden haben, die nativen Images für alle Zielarchitekturen vorab zu generieren, können Sie sie nicht an den geeigneten Speicherort für die Runtime bringen, um sie zu verwenden.

Sie können sie nicht einfach Seite an Seite mit Ihren regulären Binärdateien platzieren, da sie dann nicht ordnungsgemäß verwaltet werden - Sie werden in Schwierigkeiten geraten, wenn bestimmte Sicherheitsrichtlinienänderungen vorgenommen werden Angewandte oder andere Änderungen werden an referenzierten Assemblys vorgenommen, die die systemeigenen Images ungültig machen und erfordern, dass ein Befehl "ngen update" ausgeführt wird. Microsoft scheint derzeit nicht den Anwendungsfall von ngen mit ClickOnce-Bereitstellung zu unterstützen.

+0

Etwas (Google) sagt mir, dass Sie Recht haben, aber lassen Sie uns ein wenig warten, vielleicht taucht etwas auf. Trotz der gegenteiligen Behauptungen von MS zeigte die Antwort auf http://stackoverflow.com/questions/443955, dass es zumindest für Windows XP möglich ist. Zugegeben, auf XP sollte sich eine ClickOnce-App nicht verlassen. –

Verwandte Themen