2012-03-16 2 views
6

Я отлаживаю проблему загрузки сборки, поэтому я просматриваю журналы сварки. Иногда они путают меня, потому что они начинаются с указания сбоя, а затем в конце говорят, что сборка загружается с того места, где я ожидаю, что она будет загружена.Что это за журнал Fusion?

Что означает «Не удалось выполнить операцию», за которым следует «сборка IL, загруженная из ...»? Не удалось загрузить сборку или не удалось?

*** 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.MyApplication.Core», была найдена управляемая версия, которая была найдена. – Oded

+0

Это журнал для одной конкретной DLL. Эта dll - управляемая dll , и он успешно загружается, насколько мне известно. Поэтому я задаюсь вопросом, что «не удалось». –

+0

Ищите еще одну запись в журнале, которая показывает отказ привязки для «одной из его зависимостей». ProcMon SysInternals может показать вам, что он ищет неуправляемая DLL, если это причина. Игнорировать «не найдено совпадающего исходного изображения», это нормально. –

ответ

0

Я думаю, это связано с тем, что CLR предпринимает некоторые попытки поиска в dll, чтобы он сначала потерпел неудачу, а затем преуспеть. Вы можете связать событие assemblyresolve и посмотреть, как он работает. Если я помню, он ищет первый в GAC то локальная папка, то вложенные папки ...

See documentation here.