Подтвердить что ты не робот

Восстановление пакета NuGet не восстанавливает пакеты при сборке

Я перемещаю наш исходный код из Vault в TFS, не беспокоясь о миграции или что-то в этом роде, просто вытаскивая последнюю версию хранилища и добавляя ее в TFS.

Решение имеет несколько проектов, и каждый из них имеет по крайней мере один пакет NuGet. Я пытаюсь снова восстановить пакет восстановления. Он работал в Убежище (но не так, как предполагалось). Я был немного ограниченным сроком, и сначала это не сработало, поэтому я добавил событие Pre-Build для запуска nuget.exe против package.config для каждого проекта.

Служба сборки TFS жалуется на это, поэтому я пытаюсь заставить ее работать "правильно".

  • Я установил этот параметр в меню Инструменты Visual Studio.
  • Я установил NuGetEnablePackageRestore и запустил исправление.
  • Я проверял, что каталог пакетов является исходным, но пустым.
  • Я проверял, что каждый файл проекта содержит следующее:
<RestorePackages>true</RestorePackages>
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

Построение с подробной информацией об уровне диагностики показывает, что каждый проект оценивает эти свойства, но RestoreCommand в nuget.targets никогда не выполняется.

Любые мысли?

Я попытался реализовать решения по этим ссылкам:

Изменить

Кроме того, я обнаружил, что свойство RestoreCommand оценивается во время сборки. Диагностическая развертка показывает:

RestoreCommand = (set EnableNuGetPackageRestore=true) && "C:\Source\Kiersted Direct And Related\Direct\Kiersted\.nuget\nuget.exe" install "packages.config" -source "@(PackageSource)" -o "C:\Source\Kiersted Direct And Related\Direct\Kiersted\packages"
4b9b3361

Ответ 1

Я понял это, и я нашел ответ здесь: MSBuild не запускает задачи BuildDependsOn из импортированного проекта

Проблема (после просмотра результата сборки текстовой версии) заключалась в том, что настройка BuildDependsOn не была установлена. В моих файлах проекта есть оператор импорта

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

но этот оператор был в начале дерева XML. Очевидно, импорт для Microsoft.CSharp.targets может помешать этому импорту и, следовательно, BuildDependsOn.

Мое решение состояло в том, чтобы перенести импорт nuget.targets ниже импорта Microsoft.CSharp.targets. Теперь все прекрасно строится.