Как разрешить конфликты версий Castle.Windsor и MoQ для сборки Castle.Core - PullRequest
2 голосов
/ 11 ноября 2011

В моем проекте мне нужно использовать одновременно Castle.Windsor и Moq dll.Виндзор требует, чтобы Castle.Core также был указан в проекте.

Проблема начинается, когда я пытаюсь использовать методы из Castle.Core: Castle.DynamicProxy.Generators.AttributesToAvoidReplicating.Add(...);

Проблема 1: Если я использую Moq.dll из папки NET40, я получаю встроенную ошибку "Тип 'Castle.DynamicProxy.Generators.AttributesToAvoidReplicating' существует как в" ... \ Windsor \ dotNet40 \ Castle.Core.dll ", так и'... \ MoQ \ NET40 \ Moq.dll' "

Проблема 2: Если я использую Moq.dll из папки" NET40-requireCastle ", что логично в моей ситуации, яесть конфликт версий - Moq.dll использует Castle.Core, версия = 2.5.0.0, но Виндзор использует Castle.Core, версия = 2.5.1.0

1 Ответ

8 голосов
/ 15 ноября 2011

Проблема может быть решена с помощью привязки сборки - App.config:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" />
    <bindingRedirect oldVersion="1.0.0.0-2.5.0.0" newVersion="2.5.1.0" />
  </dependentAssembly>
</assemblyBinding>
...