Подтвердить что ты не робот

Как узнать, что зависит от конкретной версии конкретной зависимости?

Я получаю эту ошибку при запуске моего приложения (не во время компиляции):

Не удалось загрузить файл или сборку 'Castle.Windsor, Version = 2.1.0.0, Culture = нейтрально, PublicKeyToken = 407dd0808d44fbdc 'или одной из его зависимостей. Расположенные определение манифеста сборки не соответствуют ссылочной позиции сборки. (Исключение из HRESULT: 0x80131040)

Мое решение имеет множество проектов, где возможно, используя ссылки на проекты, но некоторые из этих проектов имеют ссылки на сборки для внешних зависимостей.

Как я могу легко узнать, какой проект ищет эту конкретную версию Castle.Windsor.dll? У меня нет этой версии, и я пытаюсь использовать 2.5.2 (последний), поэтому я хочу найти виновника и обновить его, чтобы использовать последнюю версию.

Большое спасибо заранее.

UPDATE
Я добавил санированный журнал Fusion ниже. Похоже, мне говорят, что Caliburn.Castle требует Castle.Windsor, Version=2.1.0.0 (что было бы ошибкой, поскольку я использую 2.5), но Fusion assembly probing как фактически находит Castle.Windsor, Version=2.5.1.0 вместо этого.

Я правильно понял это?

=== Pre-bind state information ===
LOG: User = Barney\neil
LOG: DisplayName = Castle.Windsor, Version=2.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc
 (Fully-specified)
LOG: Appbase = file:///[Debug folder of my exe]
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = [Filename of my exe]
Calling assembly : Caliburn.Castle, Version=1.1.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: [Config file for my exe]
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: Castle.Windsor, Version=2.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///[Debug folder of my exe]/Castle.Windsor.DLL.
LOG: Assembly download was successful. Attempting setup of file: [Debug folder of my exe]\Castle.Windsor.dll
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: Castle.Windsor, Version=2.5.1.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc
WRN: Comparing the assembly name resulted in the mismatch: Minor Version
ERR: The assembly reference did not match the assembly definition found.
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
4b9b3361

Ответ 1

Вы можете использовать утилиту Fuslogvw.exe, которая предоставит вам дополнительную информацию о вызывающей сборке. Скотт Ханслеман также рассказал об этом.

Ответ 2

Посмотрели ли вы на просмотр журнала привязки сборки (Fuslogvw.exe)?

Это должно предоставить всю необходимую информацию.

Смотрите MSDN.

Ответ 3

Инструмент FusionLog - лучший инструмент для подобных вещей, но иногда указывается только на ваш код. Попробуйте включить многословие для MSBuild, и вы сможете отслеживать его до того места, где компиляция выполняется, когда она терпит неудачу.