4

Мысль, что я попытаюсь извлечь максимальную пользу из моего членства в visualstudio.com. Я создал решение с несколькими проектами, подтолкнуло его к поставщику управления источником git-сервера Microsoft, настроил определение сборки и попытался создать его на сервере проекта. Однако он продолжает неудачу говорить мне:VisualStudio.com (службы Visual Studio Team Services) строит неудачу при зависимостях пакета nuget

Тип или пространство имен имя «Moq» не может быть найден (вы без вести с помощью директивы или ссылка на сборку?)

Я знаю, что это означает, что сервер сборки не может найти библиотеку Moq.dll. Я установил его с помощью NuGet, но настроил свой .gitignore, чтобы сохранить папку пакетов вне контроля источника. Я также включил восстановление пакета NuGet для решения и нажал nuget.exe, nuget.targets и nuget.config (все 3 файла в папке .nuget) вместе со всеми другими файлами проекта.

Теперь я уверен, что смогу заставить сборку работать, если я тоже скопировал папку с пакетами, но Я хочу сохранить папку пакетов nuget вне контроля источника. Так что мне интересно, возможно ли это? В документах visualstudio.com говорится, что на серверах сборки установлена ​​визуальная студия 2013, и из-за этого я предполагаю, что восстановление пакета nuget будет работать, чтобы загрузить отсутствующие DLL, чтобы они могли быть разрешены MSBuild. Это правильно? Или использовать автоматические CI-сборки на visualstudio.com, вам нужно иметь свои пакеты под контролем источника?

Согласно файлу журнала, восстановление пакета nuget скачало пакет. Что дает?

Проект "C: \ а \ SRC \ MySln.sln" (1) строит "C: \ а \ SRC \ Тесты \ MySln.ProjA.UnitTests \ MySln.ProjA.UnitTests.csproj" (3) на узле 1 (цели по умолчанию). RestorePackages:
"C: \ а \ src.nuget \ NuGet.exe" установить "C: \ A \ \ тесты в исходные тексты \ MySln.ProjA.UnitTests \ packages.config" -source "" -NonInteractive -RequireConsent - РешениеDir «C: \ a \ src \» Восстановление пакетов NuGet ... Чтобы NuGet не загружал пакеты во время сборки , откройте диалоговое окно «Параметры Visual Studio», щелкните узел «Пакет » и снимите флажок «Разрешить NuGet загружать отсутствующие пакеты», ,
Все пакеты, перечисленные в файле packages.config, уже установлены. PrepareForBuild: Создание каталога «obj \ Debug \». ResolveAssemblyReferences: Основная ссылка "Moq". C: \ Program Files (x86) \ MSBuild \ 12.0 \ bin \ amd64 \ Microsoft.Common.CurrentVersion.targets (1635,5): Предупреждение MSB3245: Не удалось устранить эту ссылку. Не удалось найти сборку «Мок». Убедитесь, что сборка существует на диске. Если эта ссылка требуется по вашему коду, вы можете получить компиляцию . [C: \ A \ \ тесты в исходные тексты \ MySln.ProjA.UnitTests \ MySln.ProjA.UnitTests.csproj]

Эта линия также в лог-файл сборки, ниже выше:

Считается «.. \ packages \ Moq.4.1.1311.0615 \ lib \ net40 \ Moq.dll», но его не было.

ответ

2

Понял это самостоятельно. Оказывается, я добавил пакеты nuget, прежде чем перемещать тестовый проект в подпапку Tests.Решение по-прежнему построено на моем LM, вероятно, потому, что зависимости уже были скопированы в bin/Debug. После переустановки пакетов nuget решение построено на vs.com.

3

У меня была такая же ошибка, но это происходило на нашем сервере сборки. Я добавил Moq через NuGet, зарегистрировался в проекте, и все было в порядке. Затем я переместил проект в новую папку в TFS, и сервер сборки просто не мог найти Moq. Он строился великолепно на месте. Я решил решить проблему, убедившись, что все мои изменения были проверены в исходном элементе управления, а затем удалили локальный каталог исходного кода. Я получил последние, и мой тестовый проект понял, что ему нужна новая копия Moq. Я обвиняю TFS/источник в безопасности или когда-либо интеграционный модуль Visual Studio для того, чтобы не добавлять его к управлению источником в определенный момент времени.

+0

Хорошо, трюк с удалением локальной папки и получения последней запустите мне ошибку в LM, так что это отличный подсказку – bresleveloper

+0

Вышеупомянутое, удалив локальную папку с папкой пакетов nuget и получив последнюю информацию при попытке сборки, и проверить после успешной сборки, после 3-4 раз и снова и снова, исправляя ошибки ссылок, он, наконец, работал. – bresleveloper

Смежные вопросы