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

Я получаю эти ошибки при запуске шага сборки MSBuild, который создает веб-проект в TeamCity, и я установил мой файл Nuget target PackageSource, чтобы указать на локальный сервер 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 Server содержит копии моих пакетов решений VS (те, которые находятся в папке пакетов по умолчанию) только с файлами .nupkg.

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

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

Ответ 1

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

Ответ 2

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

  • C:\Windows\System32\Config\systemprofile\AppData\Local
  • C:\Windows\SysWOW64\Config\systemprofile\AppData\Local

Ответ 3

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

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

Невозможно прочитать пакет из пути "EntityFramework.5.0.0.nupkg".

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

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

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

Ответ 4

Мы делаем это, обновляя файл конфигурации 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>

Ответ 5

У меня была та же проблема, но на mac. Я только что удалял один пакет nuget, который вызывал проблему. Он был расположен по адресу:

/Users/yourusername/.local/share/NuGet/Cache

Ответ 6

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

  • Перейдите в каталог проекта
  • Откройте пакеты папок
  • Найдите пакет, по которому вы получаете ошибку (blah.nupkg)
  • Удалить папку
  • Создайте проект, и ваш проект будет успешно выполнен.