2012-03-16 12 views
6

मैं एक असेंबली लोडिंग समस्या डीबग कर रहा हूं, इसलिए मैं फ़्यूज़न लॉग देख रहा हूं। कभी-कभी वे मुझे भ्रमित करते हैं क्योंकि वे विफलता का संकेत देते हैं, फिर अंत में वे कहते हैं कि विधानसभा भार जहां से मुझे लोड होने की उम्मीद है।यह फ़्यूज़न लॉग क्या कह रहा है?

"ऑपरेशन विफल" क्या है "आईएल असेंबली से लोड ..." वास्तव में क्या मतलब है? क्या यह असेंबली लोड करने में असफल रहा, या यह सफल रहा?

*** Assembly Binder Log Entry (2012-03-16 @ 10:25:14) *** 

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

Assembly manager loaded from: C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable C:\Program\MyCorp\MyApplication1.2.0.0\MyApplication.exe 
--- A detailed error log follows. 

=== Pre-bind state information === 
LOG: User = VIRTUALXP-63912\XPMUser 
LOG: DisplayName = MyCorp.MyApplication.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 
(Fully-specified) 
LOG: Appbase = file:///C:/Program/MyCorp/MyApplication1.2.0.0/ 
LOG: Initial PrivatePath = NULL 
LOG: Dynamic Base = NULL 
LOG: Cache Base = NULL 
LOG: AppName = MyApplication.exe 
Calling assembly : MyApplication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. 
=== 
LOG: Start binding of native image MyCorp.MyApplication.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. 
WRN: No matching native image found. 
LOG: IL assembly loaded from C:\Program\MyCorp\MyApplication1.2.0.0\MyCorp.MyApplication.Core.dll. 

मैं भी यहाँ तक कि जब कार्यक्रम can't load file or assembly SomeAssembly or one of its dependencies बताते हुए बाहर निकल जाता है एक विधानसभा के लिए लॉग इस तरह देखते हैं। प्रश्न में असेंबली उपरोक्त के समान लॉग प्रविष्टि के अनुसार लोड की जाती है।

क्या यह इंगित करेगा कि असेंबली की मूल निर्भरता नहीं मिली? क्या मुझे यह देखने के लिए लॉग सेटिंग्स बदलने की ज़रूरत है कि कौन सी मूल निर्भरता विफल रही है, या क्या मैं कुछ और कर सकता हूं?

+0

इस पूरे लॉग है? जो मैं देख सकता हूं उससे कोई विफलता नहीं थी (क्योंकि 'MyCorp.MyAplication.Core' की मूल छवि मिली थी, पाया गया एक प्रबंधित संस्करण लोड किया गया था। – Oded

+0

यह एक विशेष डीएल के लिए लॉग है। यह डीएल एक प्रबंधित डीएल है , और जहां तक ​​मुझे पता है, यह सफलतापूर्वक लोड हो जाता है। यही कारण है कि मुझे आश्चर्य हुआ कि "असफल" क्या है। –

+0

एक और लॉग प्रविष्टि की तलाश करें जो "इसकी निर्भरताओं में से एक" के लिए बाध्यकारी विफलता दिखाती है। SysInternals 'ProcMon आपको यह खोज कर सकता है अप्रबंधित DLL कि अगर कारण है। ध्यान न दें "कोई मिलान देशी छवि पाया", कि सामान्य है। –

उत्तर

0

मुझे लगता है कि ऐसा इसलिए है क्योंकि सीएलआर डीएल की खोज करने के कुछ प्रयास करता है, इसलिए यह पहली बार असफल हो जाता है और फिर सफल होता है। आप assemblyresolve ईवेंट से जुड़ सकते हैं और यह देख सकते हैं कि यह कैसे काम करता है। तो मुझे याद है यह GAC तो स्थानीय फ़ोल्डर तो सब-फ़ोल्डर के पहले खोज ...

See documentation here.

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