MS Поддевает единичные тесты с ошибкой после обновления Visual Studio 2013 4

Недавно я обновился от Microsoft Visual Studio 2013 Update 3 (Premium edition) до Microsoft Visual Studio 2013 Update 4 (Premium edition), и теперь мои существующие проекты unit test перестали компилироваться. Ошибка с ошибкой:

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

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

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

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

Новые проекты unit test проекты с использованием подделок MS также не могут быть построены.

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

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

Ответы

Ответ 1

  • Исправление заключалось в том, чтобы удалить все ссылки, заканчивающиеся на .FAKES(включая ссылку Microsoft.QualityTools.Testing.Fakes.dll).
  • Я также удалил папку FAKES
  • Убрано решение
  • Затем снова вернули все ссылки.

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

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

Ответ 2

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

С обновлением VS2013 4 Microsoft увеличил номер версии Microsoft.QualityTools.Testing.Fakes.dll с 11.0 до 12.0; это то, что заставило вещи сломаться.

Ответ 3

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

using (ShimsContext.Create())

(используется) throw:

Не удалось получить адрес функции SetDetourProvider из библиотеки 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Team Инструменты \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\

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

Ответ 4

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

Ответ 5

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

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