2011-04-14 10 views
19

मैंने एन # निष्पादन योग्य पर Ngen किया था। यह सफल था, लेकिन मैं यह नहीं समझ सकता कि जेनरेट की गई फाइल मेरे पीसी में कहां है। MSDN यह, अभी भी यह पता लगाने की कि वह कहाँ है सक्षम नहीं देशी छवि कैश में होना चाहिए कहते हैं ..मुझे Ngen करने के बाद जेनरेट की गई फ़ाइल का स्थान कहां मिल सकता है?

संपादित करें: मैं इसलिए मैं शारीरिक फ़ाइल की आवश्यकता उस पर objdump चलाना चाहते हैं,

EDIT2: की मेरी putput NGEN चल रहा है:

C:\Documents and Settings\nmea\My Documents\Visual Studio 2008\Projects\Consol 
eApplication4\ConsoleApplication4\bin\Release>ngen install ConsoleApplication4.e 
xe 
Microsoft (R) CLR Native Image Generator - Version 2.0.50727.3053 
Copyright (c) Microsoft Corporation. All rights reserved. 
Installing assembly C:\Documents and Settings\nmea\My Documents\Visual Studio 
2008\Projects\ConsoleApplication4\ConsoleApplication4\bin\Release\ConsoleApplica 
tion4.exe 
    Compiling assembly C:\Documents and Settings\nmea\My Documents\Visual Stud 
io 2008\Projects\ConsoleApplication4\ConsoleApplication4\bin\Release\ConsoleAppl 
ication4.exe (CLR v2.0.50727) ... 
ConsoleApplication4, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 

उत्तर

20

सटीक स्थान वर्शन के अनुसार भिन्न है, लेकिन यह यह करने के लिए कुछ इसी तरह होगा:

C:\Windows\assembly\NativeImages_v2.0.50727_32\System.Web\ace3bede2f516f9e5bca620ad86cc063>System.Web.ni.dll 

वे C:\Windows\assembly में शुरू और फिर वहाँ प्रत्येक .NET संस्करण के लिए एक सबफ़ोल्डर NativeImages_vXXX है। फिर प्रत्येक डीएल के लिए एक सबफ़ोल्डर होता है जिसमें मूल छवि होती है। एक अद्वितीय संस्करण पहचानकर्ता के लिए उस अन्य उपफोल्डर के तहत (ताकि आप एक ही डीएल के विभिन्न संस्करणों से कई मूल छवियां प्राप्त कर सकें)। अंत में देशी डीएल खुद।

ध्यान दें कि आप Windows Exlporer में इस निर्देशिका में नेविगेट नहीं कर सकते हैं। Cmd का प्रयोग करें। एक्सप्लोरर में एक शेल एक्सटेंशन है जो जीएसी और मूल छवियों के काम के बारे में विवरण छुपाता है और आपको एक सुंदर यूआई दिखाता है।

+2

बाहर निकलता है आप एक्सप्लोरर में जीएसी नेविगेट कर सकते हैं - एक उत्तर जोड़ा है, सुनिश्चित नहीं है अगर एक टिप्पणी के रूप में बेहतर है। –

+0

@ टिम बरास, अच्छी टिप, मेरे द्वारा +1। –

+0

धन्यवाद सैम, cmd नेविगेशन पर अच्छी युक्ति :) – devshorts

2

आप ग में NativeImages_blabla फ़ोल्डर में प्राप्त करेंगे: \ Windows \ विधानसभा। मैंने यह भी ध्यान दिया है कि .NET 3.5 और इससे ऊपर वास्तव में एनजीएनईडी छवि को भौतिक रूप से एक्सेस करने की अनुमति नहीं है। मुझे लगता है कि यह सभी फ़ाइलों के लिए एक बड़े डेटाबेस का उपयोग करने के लिए वापस लाया गया है, लेकिन मुझे यकीन नहीं है क्योंकि उत्पन्न छवियों को डिस्क पर कहीं नहीं देखा जाना चाहिए।

+0

मेरे पीसी में c: \ windows \ assembly के तहत "डाउनलोड" नामक केवल एक फ़ोल्डर है। वहां "मूल" के साथ कोई भी फाइल beginnig नहीं मिल सका .. – paseena

+0

क्या आप .NET 4.0 का उपयोग कर रहे हैं? –

+0

विज़ुअल सी # 2008 एसडीके प्रॉम्प्ट से चल रहा है। Ngen संस्करण "माइक्रोसॉफ्ट (आर) सीएलआर मूल छवि जनरेटर - संस्करण 2.0.50727.3053" – paseena

21

बस कुछ समान मुद्दों की खोज करें और यदि आप रजिस्ट्री में कोई परिवर्तन करते हैं तो आप एक्सप्लोरर में जीएसी पर नेविगेट कर सकते हैं।

HKEY_LOCAL_MACHINE \ सॉफ्टवेयर \ Microsoft \ फ्यूजन के तहत DisableCacheViewer नामक एक DWORD प्रविष्टि बनाते हैं, और करने के लिए 1.

उसके बाद यह निर्धारित करते हैं, एक नया एक्सप्लोरर विंडो खोलने के लिए और जैसे करने के लिए नेविगेट C: \ Windows \ विधानसभा।

2

नाजन डिस्प्ले असेंबलीनाम/वर्बोज़ का प्रयास करें। findstr "फ़ाइल:"

पूर्व: % windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ ngen.exe डिस्प्ले System.Xaml/verbose | findstr "फ़ाइल:"

0

ठीक है, आप देखते हैं कि स्थान कहां है यह जानने में काफी समय लगा!

ठीक है, यह c:\Windows\assembly फ़ोल्डर के अंदर है, लेकिन जब मैंने यह फ़ोल्डर खोला तो मैं केवल .NET असेंबली को देखने में सक्षम था, इसलिए मैंने सोचा कि कुछ छिपे हुए फ़ोल्डर्स होंगे। इसलिए मैं खोलने प्रशासनिक विशेषाधिकारों के साथ कमांड प्रॉम्प्ट तो मैं फ़ोल्डरों की सूची देखने के लिए सक्षम था के रूप में नीचे दिखाया गया है ...

GAC, GAC_32, GAC_64, GAC_MSIL, NativeImages_v2.0.50727_32 
NativeImages_v2.0.50727_64, NativeImages_v4.0.30319_32, 
NativeImages_v4.0.30319_64 

तुम देखो यह आश्चर्यजनक है। मेरा मतलब है, यहां मैं केवल आवश्यक फ़ोल्डर्स देख सकता हूं, लेकिन असेंबली नहीं। खैर, कोई समस्या नहीं, खुश रहो।

तो मेरा आवेदन v4 और 64-बिट संकलन में बनाया गया था, इसलिए मेरी आवश्यक EXE फ़ाइल NativeImages_v4.0.30319_64 फ़ोल्डर की जड़ में थी।

संबंधित मुद्दे