У меня есть проект (C #, Visual Studio 2010, MVVM Light), который требует, чтобы некоторые элементы были извлечены в DLL.
В случае объектов данных, а что нет, я смог сделать это прекрасно.Проблема возникла, когда я захотел также поместить свой класс GenericViewModelBase в DLL - это потому, что указанный класс использует классы из библиотеки MVVM Light.
Так что на этом этапе мне нужны ссылки MVVM Light как в моей DLL, так и всам проект (который использует DLL в качестве ссылки).Но когда я это делаю, и у моего основного проекта есть классы, основанные на GenericViewModelBase из DLL, я получаю сообщение об ошибке в классе ViewModelLocator (который поставляется с MVVM Light).Это происходит, когда я пытаюсь получить список объектов, основанных на GenericViewModelBase.
Это выглядит так:
public LanguageItemListViewModel LanguageItemListViewModel
{
get
{
return ServiceLocator.Current.GetInstance<LanguageItemListViewModel>();
}
}
Это работает нормально и работает, если я не пытаюсьположить материал MVVM Light в DLL.
Внутреннее исключение:
Не удалось загрузить файл или сборку 'GalaSoft.MvvmLight, Версия = 5.3.0.29702, Культура = нейтральная, PublicKeyToken = 0e453835af4ee6ce' или одна изего зависимости.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040) ":" GalaSoft.MvvmLight, версия = 5.3.0.29702, культура = нейтральная, PublicKeyToken = 0e453835af4ee6ce
Я довольно новичок в библиотеках DLL, поэтому не знаюрешение или даже подход здесь.Итак, вкратце: проекту нужны ссылки MVVM Light.Я хочу вещи в DLL.Для работы с DLL нужны ссылки MVVM Light.Project и DLL теперь имеют ссылки на MVVM Light.Ошибка.
Одна мысль, которая у меня возникла, заключалась в том, чтобы удалить материал MVVM Light из проекта, а затем переключить любые операторы using, чтобы они ссылались на DLL.Так, например, это:
using GalaSoft.MvvmLight;
Стало бы так:
using WPF_MVVM_GenericBaseDLL.GalaSoft.MvvmLight;
Но это просто говорит мне, что Galasoft не существует в WPF_MVVM_GenericBaseDLL (однако он есть в ссылкахсписок в DLL).
Я надеюсь, что это не слишком смущает, и я также надеюсь, что кто-то еще может предложить некоторые решения моей проблемы.Нужно ли в обеих библиотеках MVVM Light или ... что?
Спасибо!