Unit test проект, не созданный с сервера сборки
В моем решении VS2010 есть тестовый проект. Модуль самостоятельно тестирует ссылку на следующее пространство имен:
using Microsoft.VisualStudio.TestTools.UnitTesting;
доступ к которому осуществляется через следующую сборку на моем ПК:
Assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\
PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
Когда я создаю решение на своем ПК, у меня нет проблем; тесты будут строить и работать нормально.
У нас есть страница интрасети, которую мы можем использовать для запуска сборки на сервере сборки. Когда я создаю эту страницу, сборка выходит из строя со следующими ошибками:
Generator.cs(3,17): error CS0234: The type or namespace name 'VisualStudio'
does not exist in the namespace 'Microsoft' (are you missing an assembly
reference?)
Очевидной проблемой было бы то, что упомянутый выше Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
не присутствует на сервере сборки. Я думал, что это будет установлено с VS2010, и поскольку проекты в моем решении создают целевые объекты .NET 4.0, я ожидаю, что это будет установлено на сервере сборки.
Каков самый простой способ разрешить это? Сервер сборки не входит в мою компетенцию, и я не хочу регистрировать задание, чтобы установить на него новые библиотеки.
Ответы
Ответ 1
.UnitTestFramework.dll находится в папке C:\Program Files..., и у вас есть ссылка на него.
- Создать каталог под вашим контролем источника, например. Источник/Бинарные
- Скопировать указанную DLL в источник/бинарные файлы
- Удалить ссылку на .UnitTestFramework.dll из сборки unit test
- Добавьте ссылку на .UnitTestFramework.dll на свою сборку unit test, но на этот раз выберите DLL, которая теперь находится в разделе Source/Binaries
После этого вы можете проверить свои изменения (убедитесь, что в папке Source/Binaries указано значение) и постройте решение. Когда сервер сборки строит решение, он должен получить DLL из исходного элемента управления.
Ответ 2
Конкретный ответ для меня и решения Visual Studio 2010: