以前はNGenを使用していませんでしたが、WPFアプリケーションの起動パフォーマンスを改善する必要があります。私が理解しているように、一般的なケースは、アプリケーションのインストール中にngenを実行することです。しかし、私のアプリケーションは社内のニーズに使用されており、インストーラーはありません(複雑になるだけです)。
ngenを実行する他の方法はありますか?初めてアプリケーションを起動したときに実行するとどうなりますか?そのための管理者権限が必要ですか?
MSDN (備考の下の最初の行)によると、ngenを実行するには管理者権限が必要です。ngenを実行するためにアプリケーション内から特権を昇格させることはできないと思うので、アプリケーションを単純なMSIにパッケージ化する方がおそらく簡単でしょう。マニフェストファイルを変更する必要があります。これにより、アプリを起動するたびに管理者権限が必要になります。
アプリが.NET4.5以降を対象とし、Windows 8以降で実行されている場合は、AutoNGENを利用できる可能性があります。Auto NGENは、ユーザーマシンがアイドル状態のときに実行されるメンテナンスタスクです。メンテナンスタスクは、「適格な」アセンブリでNGENを自動的に実行します。
シナリオでは、アプリをGACにインストールする必要があります。アプリを最初に起動すると、.NETランタイムは使用状況ログを生成し、アプリアセンブリを書き留めます。自動NGENタスクは、これらのログを消費し、NGENを実行します。したがって、通常、メンテナンスタスクの実行が完了した後、起動パフォーマンスが向上します。(通常は午前3時に実行されると思います)
いくつかの情報については、このリンクを参照してください: http: //eknowledger.wordpress.com/2012/05/04/clr-4-5-net-framework-kernel-improvements/
NGENと同様に、GACにアセンブリをインストールするには管理者権限が必要であることに注意してください。:)したがって、上記の回答にあるように、インストーラーを作成し、インストール時にNGENを有効にすることをお勧めします。