Как запустить nGen в конце установки (MSI)? - PullRequest
11 голосов
/ 07 февраля 2009

Я хотел бы запустить nGen в конце моей установки просто для улучшения воспринимаемой производительности при первом запуске моего приложения. Как я мог это сделать? Есть ли лучшие практики? Могу ли я быть уверен, что nGen всегда устанавливается с .NET Framework?

Спасибо!

Ответы [ 6 ]

8 голосов
/ 11 мая 2009

Вы можете создать свою сборку с помощью пользовательского действия установщика. Следующая ссылка объясняет это более подробно:

http://www.dotnetperls.com/ngen

Я также помню хорошее обсуждение установщика Paint.NET (который включает в себя загрузку .NET Framework, предварительный JITting и т. Д.), Но я не могу найти его в данный момент. Я отредактирую этот пост, если найду его снова.

1 голос
/ 08 февраля 2009

Это сообщение в блоге должно быть полезным.

Редактировать : Поскольку вы не используете Wix, также может пригодиться .

1 голос
/ 07 февраля 2009

Прежде всего, «Да», вы можете гарантировать, что, если у них установлена ​​платформа .Net, у них есть Ngen. Единственное, что вам нужно знать, это то, какую версию они установили, потому что она отличается между 1.1 и 2.0. В прошлом я просто создал скрипт, который мой установщик вызывает в самом конце и который запускает ngen на всех сборках.

0 голосов
/ 07 ноября 2013

Запуск ngen.exe:

>ngen install c:\myfiles\MyAssembly.exe
0 голосов
/ 17 марта 2011

Как говорит Мика, Да , вы найдете NGen, установленный с .Net Framework.

Посмотрите примеры установки WiX 3.5, как NGen ваши сборки во время установки.

NGen: создание проектов установки

Надеюсь, это поможет вам.

0 голосов
/ 07 февраля 2009

Чтобы улучшить воспринимаемую производительность при запуске, взгляните на статику в вашем приложении. Большое количество статики может привести к значительным накладным расходам при запуске приложения.

Кроме того, рассмотрите возможность использования только вашей основной формы в EXE-файле, а все остальное - в отдельной DLL. Это не только повышает производительность, но и помогает вам отделить представление от данных.

Наконец, если вы настроили NGENing, взгляните на справку по выполнению пользовательских действий в MSI. Вы должны иметь возможность настроить пользовательское действие, чтобы делать то, что вы хотите.

...