2015-03-03 6 views
2

У кого-нибудь еще были проблемы с получением Sitecore 7.x и Solr 4.7 для работы с Glass Mapper 3.3? Кажется, что Glass Mapper использует контейнер IOC Castle Windsor. И Sitecore рекомендует использовать контейнер Castle Windsor IOC для Solr.Как использовать Glass Mapper 3.3 с Sitecore 7.x и Solr 4.7

Согласно Sitecore, они говорят мне, что я должен использовать Solr 4.7, и я должен использовать версию 3.1 Castle.core.dll и Castle.Windsor.dll. Однако, похоже, что Glass Mapper 3.3 требует версию 3.2+ из Castle.Core.dll.

Я думаю, что я не единственный человек, у которого была эта проблема. Но я ничего не мог найти в Интернете.

+0

Вы пробовали переадресацию привязки в своем приложении? –

ответ

4

Чтобы уточнить комментарий Фила Дегенхардта, вы можете использовать binding redirect configuration, чтобы обе ссылки разрешали одну и ту же сборку. В основном вам нужно настроить диапазон версий, которые будут указывать на той же сборки:

<configuration> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="Castle.Windsor" 
           publicKeyToken="xxxxxxxxxxxxxxx" 
           culture="neutral" /> 
      <bindingRedirect oldVersion="3.1.0.0 - 3.1.9.0" 
          newVersion="3.2.0.0"/> 
     </dependentAssembly> 
     </assemblyBinding> 
    </runtime> 
</configuration> 

Вы также могли бы использовать probing иметь обе сборки версии живут бок о бок, установив его так:

<dependentAssembly> 
    <assemblyIdentity name="Castle.Windsor" publicKeyToken="xxxxxxxxxxxxx" /> 
    <codeBase version="3.1.0.0" href="v31/Castle.Windsor.dll"/> 
    <codeBase version="3.2.0.0" href="v32/Castle.Windsor.dll"/> 
</dependentAssembly> 

Этот второй вариант полезен, если есть изменения в публичной части сборки, перенаправление может быть более полезным в вашем случае.

+0

Спасибо. Это сработало. Я смог перенаправить на 3.2. –