9

ClickOnceを介して配布されるアプリは、起動に平均10.8秒かかります。(ClickOnceがインストールされたディレクトリ内の).exeで実行した後、平均6.4秒ngenで起動します。これは明らかに大幅な高速化(40%)であり、可能であればngen-ificationを利用したいと思います。

ClickOnceデプロイメントでNGenを使用することは可能ですか?に対するRonの回答 は、Windows XPを実行していると仮定して、顧客のマシンでどのように実行できるかを示しています。これは、Windows 7ボックスの管理者権限が必要なため、一般的な解決策とは思えません。

さらに、ngenは、そのアプリに属する​​すべてのアセンブリをコンパイルするために私のボックスで40秒かかります。

理想的には、ビルドプロセスの一部として、すべての(主要な)アーキテクチャ用にアプリを事前に生成して、ユーザーが「管理者として実行してもよろしいですか?」ポップアップしてから40秒待ちます。

それは可能ですか?

4

1 に答える 1

9

これは、Windows7の管理者アクセスなしでは実行できません。

問題は、ネイティブイメージの実際のngen生成ではなく、管理者権限を必要とするネイティブイメージキャッシュ(C:\ windows \ assembly \ nativeImages_v#xxxxxxxxx)へのインストールです。したがって、すべてのターゲットアーキテクチャのネイティブイメージを事前に生成する方法を見つけたとしても、ランタイムがそれらの使用を検討するための適切な場所にそれらを配置することはできません。

通常のバイナリと並べて配置することはできません。適切に管理されないためです。特定のセキュリティポリシーの変更が行われたり、.net Frameworkの更新が適用されたり、その他の変更が行われたりすると、問題が発生します。ネイティブイメージを無効にする参照アセンブリに対して作成され、「ngenupdate」コマンドを実行する必要があります。現時点では、MicrosoftはClickOnceデプロイメントでのngenのユースケースをサポートしていないようです。

于 2012-04-11T06:04:03.163 に答える