Share via


ネイティブ イメージの解放

ネイティブ イメージは、ユーザーのハード ディスク ドライブの多くの領域を使用します。 ネイティブ イメージが値を提供しなくなったら、それをクリアしてシステム リソースを解放する必要があります。 ネイティブ イメージは、.NET Framework によって自動的にクリアされるようにするか、開発者や管理者が手動でアンインストールできます。

自動的に生成されたネイティブ イメージの解放

ネイティブ イメージをいつ作成するかを決定するための Just-In-Time コンパイラ (JIT) の使用状況の追跡に加えて、.NET Framework はネイティブ イメージがいつクリアできるかを決定するためにネイティブ イメージの使用も追跡します。 .NET Framework によって自動的に生成され、長時間にわたって使用されていないネイティブ イメージは、コンピューターのアイドル時間中に ネイティブ イメージ タスク によって自動的にクリアされます。(このポリシーの実装は、長い休暇など長機関のアイドル時間を考慮するように設計されています。)

手動で生成されたネイティブ イメージの解放

自動ネイティブ イメージの作成が使用できない場合、アプリケーションのインストール中に手動でネイティブ イメージ ジェネレーター (Ngen.exe) を実行する開発者は、アプリケーションのアンインストール時に Ngen Uninstall コマンドを使用してネイティブ イメージを削除する必要があります。 これを行わないと、ネイティブ イメージはユーザーのハード ディスクに無期限に残ります。

重要

ネイティブ イメージが .NET Framework によって自動的に生成され、その後 NGen.exe を使用して手動で再生成された場合、ネイティブ イメージは自動的にクリアされなくなります。

Ngen サービス は、共有コンポーネントに依存するすべてのアセンブリが削除された場合だけに共有コンポーネントが削除されるように、依存関係の一覧を維持します。 また、ルートとしてインストールされた共有コンポーネントは削除されません。

Hh691760.collapse_all(ja-jp,VS.110).gif例 1: すべてのシナリオのネイティブ イメージを手動でアンインストールする

次のコマンドは、/Profile オプション、または /Debug オプションでインストールされた場合でも、Assembly のすべてのネイティブ イメージをアンインストールします:

ngen Uninstall Assembly

Hh691760.collapse_all(ja-jp,VS.110).gif例 2: 特定のシナリオのネイティブ イメージを手動でアンインストールする

/Profile オプション、または /Debug オプションでネイティブ イメージをインストールした場合、個々のシナリオを削除できます。 たとえば、次のコマンドはプロファイリング用に生成されたイメージだけを削除します。

ngen Uninstall Assembly /Profile

Hh691760.collapse_all(ja-jp,VS.110).gif例 3: アセンブリの特定のバージョンのネイティブ イメージを手動でアンインストールする

次のコマンドは、アセンブリの特定のバージョンのネイティブ イメージをクリアします。 イメージが複数のシナリオにコンパイルされている場合、すべてのシナリオ バージョンが削除されます。

ngen uninstall "ClientApp, Version=1.0.0.0, Culture=neutral, 
  PublicKeyToken=3c7ba247adcd2081, processorArchitecture=MSIL"

参照

関連項目

Ngen.exe (ネイティブ イメージ ジェネレーター)

概念

ネイティブ イメージ

ネイティブ イメージ タスク

その他の技術情報

ネイティブ イメージの生成