Ответ 1
Ошибка, скорее всего, связана с ошибкой в подделках, инициированных поддельной сборкой. Я отправил этот вопрос в Microsoft.
Я добавил сборку подделок в проект Visual Studio 2012 unit test, соответствующий моему проекту приложения (System Under Test), как описано в статье Peter Provost. Тем не менее, проект больше не будет создан из-за неразрешенной ссылки на тип созданного кода Fakes:
The type or namespace name 'FieldDefinition' does not exist in the namespace 'bc::ProductStudio' (are you missing an assembly reference?)
[C:\Users\arvek\Projects\Project\Project.Tests\obj\Debug\Fakes\bc\f.csproj]
C:\Users\arvek\Projects\Project\Project.Tests\f.cs
Что здесь происходит? Из того, что я знаю, это должно просто работать, поэтому мне кажется, что в средствах подделок есть ошибка.
Ошибка, скорее всего, связана с ошибкой в подделках, инициированных поддельной сборкой. Я отправил этот вопрос в Microsoft.
Эта ошибка присутствует и в VS2013. Ссылка с ошибкой MSDN.
Работа вокруг: Удалить файл .messages из папки FakeAssemblies.
Один из вариантов, который может помочь вам диагностировать проблему, - это включить диагностику для подделок. В файле .fakes.
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011" Diagnostic="true" Verbosity="Noisy">
Кроме того, убедитесь, что для параметра "Вывод сборки проекта MSBuild" установлено значение "Диагностика". Вы можете найти это в Инструментах → Параметры → Проекты и решения → Сборка и запуск.
Восстановите тестовый проект, и теперь ваше окно вывода должно быть заполнено информацией, включая любые сбои для подделок
Удаление папки Поддельные устраняет эту проблему.
Ты не поверишь этому, но мне удалось снова подделать подделки, просто добавив новую строку в файл, удалив эту новую строку и сохранив фактически немодифицированный файл. После следующей сборки все было в порядке.
Вещи, которые заставляют вас идти... хм...