MvvmLight с WindsorCastle: конфликт Microsoft.Practices.ServiceLocation - PullRequest
0 голосов
/ 06 мая 2019

Я установил в свой проект .NET:

  • MvvmLight v5.4.1.1
  • Castle.Windsor v5.0.0
  • CommonServiceLocator v2.0.2
  • CommonServiceLocator.WindsorAdapter.Unofficial v3.3.0

Затем я инициализирую свой контейнер следующим образом

public ViewModelLocator()
{
    var container = new WindsorContainer();
    ServiceLocator.SetLocatorProvider(() => new WindsorServiceLocator(container));
    container.Register(Component.For<MainViewModel>().ImplementedBy<MainViewModel>());
}

Что дает эту ошибку:

Тип 'ServiceLocatorImplBase' определен в сборке, которая не упоминается. Вы должны добавить ссылку на сборку 'Microsoft.Practices.ServiceLocation, версия = 1.3.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 '.

По сути, MvvmLight v5.4.1.1 ожидает CommonServiceLocator v2.0.2, CommonServiceLocator.WindsorAdapter.Unofficial ожидает CommonServiceLocator v1.3.0, а CommonServiceLocator.WindsorAdapter ожидает CommonServiceLocator v1.0.0

Одним из решений является понижение CommonServiceLocator до v1.3.0, и оно работает, но затем MvvmLight также понижается до v5.3.0

Какой правильный способ сделать это? Как мне заставить MvvmLight и Windsor Castle работать вместе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...