Ответ 1
Мы исключили некоторые пространства имен и типы из поколения mole/stub на основе этой статьи:
Устранение неполадок в Visual Studio 11/.NET 4.5
и теперь он компилируется (несколько тестов все еще не сработали, но они компилируются).
Я пытаюсь скомпилировать существующий проект (цели .NET4), разработанный в Visual Studio 2010, и теперь тестирую переход на VS2012.
Когда я скомпилирую свой существующий проект с помощью ролей, я получаю следующую ошибку.
Тип или имя пространства имен "Требование" не существует в пространстве имен 'System.Security.Claims' (вам не хватает ссылки на сборку?) [C:\ProjectPath\Project.Tests.Unit\obj\Debug\Moles\m\m.g.csproj] C:\ProjectPath\Project.Tests.Unit\m.g.cs
Существует огромный список различных типов, отображающих это сообщение.
Любые мысли?
Мы исключили некоторые пространства имен и типы из поколения mole/stub на основе этой статьи:
Устранение неполадок в Visual Studio 11/.NET 4.5
и теперь он компилируется (несколько тестов все еще не сработали, но они компилируются).
У нас возникли трудности при обновлении с VS 2010 до VS 2010 SP1. Пакет обновления содержит различные CLR-методы, которые самая последняя версия Moles не понимает.
Я рекомендую обновить ваши тесты Moles, чтобы использовать Fakes and Stubs (версия выпуска Moles). Fakes and Stubs включены в .NET 4.5 и С# 5 и поддерживаются Visual Studio 2012. Преобразование в подделки не сложно, так как это в основном то же, что и Moles.
Я собирался указать вам на ту же статью @Peter, опубликованную. (Хороший звонок, Питер!) Описанное обходное решение должно устранить ваши проблемы.
Я считаю, что проблема заключается в том, что Moles был разработан для фреймворков 3.0-4.0.NET. 4.5.NET Framework объединяет некоторые из новых функций, таких как новая асинхронная поддержка. Мольс не предназначен для обработки этой новой асинхронной парадигмы и неправильно обрабатывает код. Чтобы предотвратить такие проблемы, компиляторы обычно содержат поддерживаемый переключатель версии и просто не будут компилировать код будущих версий. Кажется, это так. Я не помню, но проверьте окно вывода Moles; он может сообщать об этих пространствах имен, которые не компилируются для раскаленной сборки.
Что касается обновления...
Обновление Visual Studio 2012 2 добавляет поддержку подделок в Premium SKU.
Я рекомендую обновление, потому что:
Если вы являетесь сотрудником программного обеспечения, магазина разработки или ИТ-отдела, вы сможете легко оправдать расходы на подписку SK2 VS2012 Premium для своего менеджера по работе. Если вы платите за себя, а не оплачиваете работу по контракту на регулярной основе или покупаете лицензию вместо подписки на MSDN, вы, вероятно, найдете это дорогостоящим вариантом.