2012-05-02 22 views
10

NGEN'i, uygulamam tarafından kullanılan çeşitli montajların yerel görüntülerini oluşturmak için kullandım. Ancak, bu görüntüler uygulamayı çalıştırırken yüklenmez ve nedenini bilmiyorum.NGEN ile oluşturulan .NET yerel görüntüleri yüklenmemiş

Bu tipik bir fuslogvw gelen kayıtları:

*** 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. 

Ve bu montaj hakkında Ngen.exe gelen bilgiler:

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 

Ben C bulunur Ngen.exe kullandı: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ve derlememin hedef çerçevesi .NET Framework 4'tür. Doğal resmi oluşturduktan sonra derlemeyi yeniden derlemedim.

Herhangi bir yardım

mutluluk duyacağız. C:

cevap

10

Montaj yöneticisi yüklenen \ Windows \ Microsoft.NET v4.0.30319 \ Framework64 clr.dll \

Sizin süreç 64 bit modunda çalışırken \ varsayılan ile 64 bit işletim sistemindeki AnyCPU hedefi. Bu, ngen.exe'nin 64 bit sürüm sürümünü çalıştırmanızı gerektirir. Uygun Visual Studio Komut İstemi'ni seçtiğinizden emin olun. İki tane var, 64-bit araçlar için ortamı kuran, Başlat menüsünde "Visual Studio x64 Win64 Komut İstemi (2010)" olarak adlandırılır.

+0

Harika, hızlı ve doğru cevap Hans için teşekkürler. Çok iyi belgelenmiş bir soru için – Odsh

+1

+1, size yardım etmeyi kolaylaştırdınız. –