Я настроил сборку в городе команды со ссылкой на пакет NuGet в тестовом проекте.
Я использовал структуру папок
\
|- Project1
\- Project1.csproj
|- Project1.Test
\- Project1.Test.csproj
|- packages
\- lib
\- RhinoMocks
Проект Project1 успешно создается, но тестовый проект не выполняется на шаге ResolveAssemblyReferences.Относительный путь кажется неправильным.
[13:16:55]: [ResolveAssemblyReference] C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360, 9): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Rhino.Mocks, Version=3.6.0.0, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[13:16:55]: [ResolveAssemblyReference] For SearchPath "{HintPathFromItem}".
[13:16:55]: [ResolveAssemblyReference] Considered "..\packages\RhinoMocks.3.6\lib\Rhino.Mocks.dll", but it didn't exist.
Конфигурация сборки TeamCity:
- Задача MSBuild
- Путь к файлу сборки: Project1.Test \ Project.Test.csproj
- Рабочий каталог:% system.teamcity.build.checkoutDir% \ Project1.Test
- Корень VCS указывает на корень структуры папок выше.
Насколько я могу судить, это может быть проблема MSBuild, я получаю ту же ошибку при запуске MSBuild из командной строки в папке извлечения на агенте сборки.
Дополнительная информация: Путь к подсказке предоставляется конфигурацией пакета Nuget.В Visual Studio ссылка на пакет работает правильно.Тем не менее, при запуске через MSBuild, он, похоже, запутался в своем текущем каталоге.Путь .. \ packages ... фактически является дословным справочным путем от Nuget.