10

NGENを使用して、アプリケーションで使用されるいくつかのアセンブリのネイティブイメージを作成しました。ただし、アプリケーションの実行時にこれらの画像が読み込まれないため、理由がわかりません。

これはfuslogvwからの典型的なログです:

*** Assembly Binder Log Entry  (2/05/2012 @ 13:29:04) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\MyDir\MyApp.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = ***\***
LOG: DisplayName = MyAssembly, Version=1000.0.0.0, Culture=neutral, PublicKeyToken=null (Fully-specified)
LOG: Appbase = file:///C:/MyDir/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = MyApp.exe
Calling assembly : PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
LOG: Start binding of native image MyAssembly, Version=1000.0.0.0, Culture=neutral, PublicKeyToken=null.
WRN: No matching native image found.
LOG: IL assembly loaded from C:\MyDir\MyAssembly.dll.

そして、そのアセンブリに関するngen.exeからの情報:

C:\MyDir>ngen display MyAssembly.dll
Microsoft (R) CLR Native Image Generator - Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

NGEN Roots:

C:\MyDir\MyAssembly.dll

NGEN Roots that depend on "C:\MyDir\MyAssembly.dll":

C:\MyDir\MyAssembly.dll

Native Images:

MyAssembly, Version=1000.0.0.0, Culture=neutral, PublicKeyToken=null

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \にあるngen.exeを使用し、アセンブリのターゲットフレームワークは.NET Framework 4です。ネイティブイメージを作成した後、アセンブリを再コンパイルしませんでした。

どんな助けでもいただければ幸いです。

4

1 に答える 1

11

アセンブリマネージャーの読み込み元:C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ clr.dll

プロセスは64ビットモードで実行されています。これは、64ビットオペレーティングシステムのAnyCPUターゲットのデフォルトです。そのためには、 64ビットバージョンのngen.exeを実行する必要があります。必ず適切なVisualStudioコマンドプロンプトを選択してください。2つあります。64ビットツールの環境をセットアップするものは、[スタート]メニューで「VisualStudio x64 Win64コマンドプロンプト(2010)」という名前です。

于 2012-05-02T13:25:56.897 に答える