Сбой модульных тестов MS Fakes после обновления 4 для Visual Studio 2013

Я недавно обновил Microsoft Visual Studio 2013 с обновлением 3 (версия Premium) до Microsoft Visual Studio 2013 с обновлением 4 (версия Premium), и теперь мои существующие проекты модульных тестов перестали компилироваться. Сбой с ошибкой:

Тип 'Microsoft.QualityTools.Testing.Fakes.Stubs.StubBase`1' определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку "Microsoft.QualityTools.Testing.Fakes, версия =12.0.0.0, культура = нейтральная, PublicKeyToken=b03f5f7f11d50a3a".

У нас, наряду со многими другими людьми, была похожая проблема, когда в VS2013 была введена ошибка, которая могла быть устранена путем ручного удаления файла.messages (с помощью проводника или обозревателя решений с включенным просмотром всех файлов) в папке FakesAssemblies внутри папка проекта. Это, однако, не решает проблему, даже если я удаляю всю папку FakesAssemblies.

Ссылка на проект (включая правильную версию в рамках проекта). Я удалил ссылку и прочитал ее, и она не имеет никакого эффекта, они все еще не в состоянии скомпилировать.

Проекты модульного тестирования по-прежнему компилируются и передаются на компьютеры других коллег с помощью Visual Studio 2013 Update 3.

Новые проекты модульных тестов с использованием подделок MS также не в состоянии построить.

Если не считать удаления 4, можно ли попробовать еще что-нибудь?

Если нет, я зарегистрирую ошибку в Microsoft Connect.

5 ответов

Решение
  1. Исправление заключалось в удалении всех ссылок, заканчивающихся.FAKES (включая ссылку Microsoft.QualityTools.Testing.Fakes.dll).
  2. Я также удалил папку FAKES
  3. Очищенный раствор
  4. Затем перечитал все ссылки обратно.

У нас были еще ошибки, связанные с Shims, но мы просто преобразовали их в Stubs.

Таким образом, мы должны были обновить все наши проекты вручную, все экземпляры VS, включая сервер сборки.

В справочных свойствах для Microsoft.QualityTools.Testing.Fakes измените свойство "Конкретная версия" на FALSE, Это позволит Visual Studio 2013 использовать любую версию Microsoft.QualityTools.Testing.Fakes установлен на вашей машине.

В Visual Studio 2013 с обновлением 4 корпорация Майкрософт увеличила номер версии Microsoft.QualityTools.Testing.Fakes.dll с 11,0 до 12,0; это то, что заставило вещи сломаться.

Попробуйте очистить весь проект и скомпилировать его снова, это сработало для меня!

Я добавил следующие сборки и перестроил свое решение. Это начало работать на меня. A. C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ PublicAssemblies \ Microsoft.QualityTools.Testing.Fakes.dll

B. C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ PublicAssemblies \ Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Перепробовав все ответы здесь, у меня наконец получилось. Код:

using (ShimsContext.Create())

(раньше) бросать:

Не удалось получить адрес функции SetDetourProvider из библиотеки "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Team Tools\Performance Tools\vsperfcorprof.dll".

Мой тестовый проект запущен в 2012 году. Я заменил на них следующие dll:

  • Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll (версия: 10.1.0.00, версия файла: 11.0.60610.1)
  • Microsoft.QualityTools.Testing.Fakes.dll (версия: 11.0.0.0, версия файла: 11.0.60315.1)

Они были расположены в:

C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ PublicAssemblies \

Надеюсь, поможет.

Другие вопросы по тегам