MSBuild NuGet.targets, Nuget.exe: невозможно прочитать пакет из ошибки пути «blah.nupkg»

Я получаю эти ошибки при выполнении шага сборки MSBuild, который создает веб-проект в TeamCity, и я настроил свой файл PackageSource Nuget target так, чтобы он указывал на локальный сервер Nuget, например. PackageSource Include="http://mylocaldevurl/nuget/Packages" .

Сборка запускается и выдает ошибки вида, например. Exec] F:\TeamCity\buildAgent\work\blahblah.nuget\NuGet.targets(87, 9): Невозможно прочитать пакет из пути «Lucene.Net.3.0.3.nupkg».

Что странно, другие пакеты нормально загружаются в рабочую папку TeamCity — папку пакета.

Локальный сервер Nuget содержит копии моих пакетов решений VS (те, которые находятся в папке пакетов по умолчанию) только с файлами .nupkg.

Мой вопрос заключается в том, что мне нужно что-то сделать при копировании файлов .nupkg на этот сервер. Возможно, я что-то упускаю.

Я уже дважды проверил, что пакеты существуют на локальном сервере.


person kwiri    schedule 14.08.2013    source источник


Ответы (6)


У меня была такая же проблема с использованием TFS. Что я сделал, чтобы исправить, так это очистить кеш nuget в профиле пользователя, в котором выполнялась сборка (%LocalAppData%\NuGet\Cache). Я просто очистил каталог и снова запустил сборку, после чего все заработало.

person GrokSrc    schedule 22.01.2014
comment
Я просто удалил проблемный пакет из кеша. Было бы очень интересно понять, почему это решает проблему. Редактировать: на самом деле, я думаю, что пакет был поврежден (рабочий пакет намного больше на диске) - person Anton; 07.04.2015

Если ваш TeamCity работает под учетной записью системного пользователя, вы можете попытаться очистить кэш Nuget, который находится в одной из этих папок:

  • C:\Windows\System32\config\systemprofile\AppData\Local
  • C:\Windows\SysWOW64\config\systemprofile\AppData\Local
person Rafał Bigaj    schedule 15.05.2015

В моем случае учетная запись службы, используемая для запуска агента сборки, имела ограниченный доступ к Интернету через наш прокси-сервер WebSense.

Сообщение об ошибке, которое я получал в журнале сборки:

Не удалось прочитать пакет из пути «EntityFramework.5.0.0.nupkg».

Я перешел к папке кеша для пользователя агента сборки (C:\Users\{BuildAgentUser}\AppData\Local\NuGet\Cache) и нашел там файл .nupkg, который вызывал ошибку.

Я мог видеть, что что-то не так, так как файл был всего 3 КБ, тогда как на моей машине он был больше 1 МБ.

Просмотр содержимого файла .nupkg выявил проблему — загрузка была заблокирована WebSense, и на самом деле он содержал сообщение об ошибке, которое было бы отображено, если бы оно было открыто в веб-браузере.

person Sir Crispalot    schedule 17.08.2015

Мы делаем это, обновляя файл конфигурации NuGet для пользователя, под которым работает BuildAgent, вместо того, чтобы устанавливать источник пакета, и он работал нормально, начиная с NuGet v1.6.

Файл: c\Users\svc_teamcity\AppData\Roaming\NuGet\NuGet.config

Выглядит как:

<activePackageSource>
  <add key="NuGet official package source" value="https://nuget.org/api/v2/" />
  <add key="MyNuGetGallery" value="D:\NuGet.Packages" />
</activePackageSource>
person wlscaudill    schedule 02.10.2013

У меня была такая же проблема, но на маке. Что я сделал, так это просто удалил один пакет nuget, который вызывал проблему. Он находился по адресу: г.

/Users/yourusername/.local/share/NuGet/Cache
person SaiyanGirl    schedule 22.07.2016

Я знаю, что это старый вопрос, недавно я столкнулся с этой проблемой, и ни одно из приведенных выше решений не решило мою проблему. И причина ошибки заключалась в том, что один из пакетов был поврежден, а размер файла .nupkg был 0 КБ. То, что я сделал, это предыдущие шаги, и это решило мою проблему, и я смог переустановить пакеты.

  1. Перейдите в каталог вашего проекта
  2. Откройте папку пакеты
  3. Найдите пакет, в котором вы получаете сообщение об ошибке (blah.nupkg)
  4. Удалить папку
  5. Создайте свой проект, и ваш проект будет успешно построен
person Sibeesh Venu    schedule 17.12.2016