Сбой модульных тестов 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 ответов
- Исправление заключалось в удалении всех ссылок, заканчивающихся.FAKES (включая ссылку Microsoft.QualityTools.Testing.Fakes.dll).
- Я также удалил папку FAKES
- Очищенный раствор
- Затем перечитал все ссылки обратно.
У нас были еще ошибки, связанные с 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 \
Надеюсь, поможет.