После установки .NET 4.5 предыдущий проект Unit-Test не смог построить
У меня есть решение .NET 4.0 WPF, которое включает проект Unit Test, который проверяет различные команды, используемые в моделях viewmodels. Все было отлично. Затем я установил .NET framework 4.5, а затем VS2012 и начал получать сообщения об ошибках, например -
XYZProject.UsersViewModel_Accessor.AddUserToAccountsCommand' is not supported by the language
Перед установкой VS2012 на ссылку UnitTestFramework.dll
ссылались -
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\
на который было наложено ссылку -
C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v4.0
Итак, он взял ссылку из VS2012, и я вручную восстановил эту ссылку. Но не повезло.
AddUserToAccountsCommand
- это объект ICommand
, который находится в PresentationCore.dll
в .NET 4.0, но в System.dll
в .NET 4.5. Поэтому я также проверил эти ссылки, и они выглядят нормально, как и раньше.
Сообщение об ошибке отображается только там, где цель тестирования создается как Accessors, например UsersViewModel_Accessor
, означает, что следующий код генерирует ошибку
UsersViewModel_Accessor target = new UsersViewModel_Accessor();
Assert.IsTrue(target.AddUserToAccountsCommand.CanExecute(null), "Failed to perform can exetuce of add user command");
target.AddUserToAccountsCommand.Execute(null);
Но если тестовая цель создается с использованием типа viewmodel непосредственно следующим образом:
UsersViewModel target = new UsersViewModel();
Assert.IsTrue(target.AddUserToAccountsCommand.CanExecute(null), "Failed to perform can exetuce of add user command");
target.AddUserToAccountsCommand.Execute(null);
Ошибка не возникает, и проект успешно завершается. Так может ли кто-нибудь поделиться какой-либо мыслью?
РЕДАКТИРОВАТЬ: После начала получения ошибки я также установил VS2010 SP1. Еще не повезло.
EDIT2: На той же машине мне нужно использовать VS2012 для других проектов, поэтому это не будет решением для удаления .NET 4.5 или VS2012. Просто чтобы проверить, я принял решение на другой машине и на этот раз установил только .NET 4.5, а не VS2012, и попытался построить проект. Та же история. SO, проблема НЕ связана с VS2012, это что-то противоречивое между .NET 4.0 и .NET 4.5. Чтобы отразить это, я меняю название вопроса.