Проблема с восстановлением пакетов Nuget в Bamboo с помощью MSBuild

Я использую Bamboo и MSBuild и включил пакеты восстановления. введите здесь описание изображения

Когда я запускаю его, он не восстанавливает все пакеты, когда я вижу журналы, он восстанавливает некоторые пакеты, но не все пакеты проектов в решении ... есть ли что-нибудь, что мне нужно исправить в сценарии MS Build?

Полный журнал ошибок: http://justpaste.it/oq2p

Журнал ошибок:

02-Nov-2015 10:08:55    Infrastructure\InMemoryMultipartStreamProvider.cs(14,52): error CS0246: The type or namespace name 'MultipartStreamProvider' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk.BusinessObjects\SmartDesk360.BusinessObjects.csproj]
02-Nov-2015 10:08:55    Infrastructure\InMemoryMultipartStreamProvider.cs(30,32): error CS0115: 'InMemoryMultipartStreamProvider.GetStream(HttpContent, HttpContentHeaders)': no suitable method found to override [C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk.BusinessObjects\SmartDesk360.BusinessObjects.csproj]
02-Nov-2015 10:08:55    Infrastructure\InMemoryMultipartStreamProvider.cs(41,36): error CS0115: 'InMemoryMultipartStreamProvider.ExecutePostProcessingAsync()': no suitable method found to override [C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk.BusinessObjects\SmartDesk360.BusinessObjects.csproj]
02-Nov-2015 10:08:55    Done Building Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk.BusinessObjects\SmartDesk360.BusinessObjects.csproj" (default targets) -- FAILED.
02-Nov-2015 10:08:55    Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\API.SmartDesk360.com\SmartDesk360.API.csproj" (2) is building "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Core\SmartDesk360.Core.csproj" (6) on node 1 (default targets).
02-Nov-2015 10:08:55    RestorePackages:
02-Nov-2015 10:08:55      "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\.nuget\NuGet.exe" install "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Core\packages.config" -source ""  -NonInteractive -RequireConsent -solutionDir "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\ "
02-Nov-2015 10:08:55      Restoring NuGet packages...
02-Nov-2015 10:08:55      To prevent NuGet from downloading packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages'.
02-Nov-2015 10:08:55      All packages listed in packages.config are already installed.
02-Nov-2015 10:08:55    Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Core\SmartDesk360.Core.csproj" (6) is building "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.DataLayer\SmartDesk360.DataLayer.csproj" (7) on node 1 (default targets).
02-Nov-2015 10:08:55    RestorePackages:
02-Nov-2015 10:08:55      "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\.nuget\NuGet.exe" install "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.DataLayer\packages.config" -source ""  -NonInteractive -RequireConsent -solutionDir "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\ "
02-Nov-2015 10:08:55      Restoring NuGet packages...
02-Nov-2015 10:08:55      To prevent NuGet from downloading packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages'.
02-Nov-2015 10:08:55      All packages listed in packages.config are already installed.
02-Nov-2015 10:08:55    Done Building Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.DataLayer\SmartDesk360.DataLayer.csproj" (default targets) -- FAILED.
02-Nov-2015 10:08:55    Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Core\SmartDesk360.Core.csproj" (6) is building "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.FileManager\SmartDesk360.FileManager.csproj" (8) on node 1 (default targets).
02-Nov-2015 10:08:55    RestorePackages:
02-Nov-2015 10:08:55      "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\.nuget\NuGet.exe" install "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.FileManager\packages.config" -source ""  -NonInteractive -RequireConsent -solutionDir "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\ "
02-Nov-2015 10:08:56      Restoring NuGet packages...
02-Nov-2015 10:08:56      To prevent NuGet from downloading packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages'.
02-Nov-2015 10:08:56      All packages listed in packages.config are already installed.
02-Nov-2015 10:08:56    Done Building Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.FileManager\SmartDesk360.FileManager.csproj" (default targets) -- FAILED.
02-Nov-2015 10:08:56    Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Core\SmartDesk360.Core.csproj" (6) is building "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Mailer\SmartDesk360.Mailer.csproj" (9) on node 1 (default targets).
02-Nov-2015 10:08:56    GenerateTargetFrameworkMonikerAttribute:
02-Nov-2015 10:08:56    Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
02-Nov-2015 10:08:56    CoreCompile:
02-Nov-2015 10:08:56    Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files.
02-Nov-2015 10:08:56    CopyFilesToOutputDirectory:
02-Nov-2015 10:08:56      SmartDesk360.Mailer -> C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Mailer\bin\Debug\SmartDesk360.Mailer.dll
02-Nov-2015 10:08:56    Done Building Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Mailer\SmartDesk360.Mailer.csproj" (default targets).
02-Nov-2015 10:08:56    Done Building Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Core\SmartDesk360.Core.csproj" (default targets) -- FAILED.
02-Nov-2015 10:08:56    Done Building Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\API.SmartDesk360.com\SmartDesk360.API.csproj" (default targets) -- FAILED.
02-Nov-2015 10:08:56    Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\API.SmartDesk360.com.sln" (1) is building "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\Tests.SmartDesk360.com\Tests.SmartDesk360.com.csproj" (10) on node 1 (default targets).

person SOF User    schedule 02.11.2015    source источник


Ответы (2)


Итак, если ваш файл repositories.config содержит что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?>
<repositories>
  <repository path=".\MyCsProj\packages.config" />
</repositories>

И ваш файл MyCsProj\packages.config выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="SuperCoolPackage" version="4.3.2.1" targetFramework="net452" />
</packages>

Nuget будет искать каталог, например:

.\packages\SuperCoolPackage.4.3.2.1\

Независимо от того, есть ли фактические двоичные файлы в каталоге «.\packages\SuperCoolPackage.4.3.2.1\», Nuget ~думает~/предполагает, что они там по имени папки.

Поэтому иногда, хотя папка ".\packages\SuperCoolPackage.4.3.2.1\" существует, в ней может не быть никаких дочерних файлов, которые являются фактическими двоичными файлами, которые вам нужны.

Вам нужно перечитать последние предложения по хранению файлов в системе контроля версий.

https://docs.nuget.org/consume/package-restore

Чтобы сделать среду разработки более чистой, а также уменьшить размер репозитория, NuGet предлагает функцию восстановления пакетов, которая устанавливает все пакеты, на которые есть ссылки, перед сборкой проекта, тем самым обеспечивая доступность всех зависимостей для проекта без необходимости их сохранения в системе управления версиями.

Итак, вот что вам нужно в системе контроля версий.

.\пакеты\репозитории.config

и НЕТ подпапок в этом ".\packages\"

Тогда ты побежишь

nuget.exe восстанавливает MySolution.sln в процессе сборки.

Поскольку в этом «.\packages\» НЕТ подпапок, он их загрузит. (и кешировать их локально, так что только в первый раз действительно больно)

Самая большая точка срабатывания (ИМХО)

.\packages\SuperCoolPackage.4.3.2.1\

в системе контроля версий. Я рекомендую НЕ иметь какие-либо из этих подпапок в системе управления версиями, как указано в URL-адресе nuget, который я упоминал выше.

Если у вас есть .\packages\SuperCoolPackage.4.3.2.1\... либо удалите его из системы управления версиями........., либо напишите код msbuild для удаления всех подпапок перед запуском команды восстановления nuget.exe.

person granadaCoder    schedule 02.11.2015

 "C:\Program Files (x86)\NuGet\nuget.exe" restore ${bamboo.build.working.directory}\MySolution.sln"

Я надеюсь, что это решит проблему

person Zulfiqar Muhammad    schedule 02.11.2015