publi sh пакет nuget из копии - PullRequest
0 голосов
/ 07 января 2020

Кажется, мои товарищи по команде выключили свой сервер nuget и уехали в отпуск. Мне нужно временное решение, чтобы моя сборка Azure Dev Ops не приводила к сбою при восстановлении пакетов nuget.

У меня есть локальная копия пакета на

C: \ Пользователи \ kirst.nuget \ packages \ mypackagetemp

которые я хочу опубликовать sh во временной ленте.

Я прочитал инструкции по публикации пакета из командной строки но я не совсем понимаю шаг 6 Конечно, мне не нужно настраивать Project и восстанавливать пакеты, поскольку у меня уже есть .nupkg

Я попробовал команду

c:\nuget\nuget.exe push -Source "TempFeed" -ApiKey az mypackagetemp.nupkg

, но получил ошибку

невозможно загрузить индекс службы для источника https://pkgs.dev.azure.com/mycompany/myproject/_packageing/TempFeed/nuget/v3/index.json

Когда я повторяю команду, я получаю запрос на учетные данные, когда я помещаю в учетные данные, к которым я подключаюсь Azure Dev Ops, с которыми они не работают.

[Обновление]

Мне было предложено ввести учетные данные .. читать по нему ... это сбивает с толку.

[Обновление]

Я обновил nuget.exe с 5.1.0.6013 до последней версии 5 .4.0.6315 На этот раз я получил пользовательский интерфейс для входа в систему и сообщение

Ваш пакет был отправлен

Однако, когда выполняется сборка конвейера devops, я получаю сообщение

unable to load the service index for source
https://pkgs.dev.azure.com/mycompany/myproject/_packageing/TempFeed/nuget/v3/index.json

Полагаю, мне нужно как-то создать индексный файл. json.

В моем проекте используется файл mynuget.config, который имеет следующее в пакетах источников

 <add key="TempPackage" value="https://pkgs.dev.azure.com/mycompany/_packaging/myfeed/nuget" />

[Обновить]

Я изменил mynuget.config, чтобы иметь

  <add key="TempPackage" value="https://pkgs.dev.azure.com/mycompany/_packaging/myfeed/nuget/v3/index.json" />

Теперь сборка dev ops показывает сообщение

Не удалось получить информацию о 'Serilog.Enrichers.Thread' из удаленного источника 'https://pkgs.dev.azure.com/mycompany/_packaging/myfeed/nuget/FindPackagesById ()? Id ="Serilog.Enrichers.Thread", код состояния ответа не указывает на успех: 404 (не найден).)

Мое решение использует Serilog. Я не думаю, что сторонний пакет использует его.

[Обновление]

В следующий раз, когда я собрал, я получил другую ошибку в поисках WindowsAzure .Storage

Кажется, я получаю другой файл, вызывающий ошибку каждый раз, когда я строю конвейер.

У моих артефактов проекта есть 2 канала. Необходимые файлы находятся в невыбранном фиде.

[Обновить]

Я попытался отредактировать mynuget.config для использования индекса. json, однако я получаю ошибку сборки

Сбой команды nuget с кодом выхода (1) и ошибкой (Невозможно загрузить индекс службы для источника https://pkgs.dev.azure.com/mycompany/_packaging/myfeed/nuget/v3/index.json. Код состояния ответа не указывает на успех: 404 (Не найдено - канал с идентификатором) «MyFeed» не существует

[Обновление]

Поскольку новый канал был основан на проекте, я отредактировал mynuget.config так, чтобы он имел

  <add key="TempPackage" value="https://pkgs.dev.azure.com/mycompany/myproject/_packaging/myfeed/nuget/v3/index.json" />

Теперь он работает!

1 Ответ

1 голос
/ 07 января 2020

В Azure Веб-портал Devops, для вашего текущего проекта, вкладка go Artifacts и убедитесь, что ваши пакеты, такие как mypackagetemp.nupkg, доступны там.

enter image description here

Для меня у меня есть кастом LibraryCore.nupkg, толкнутый туда. Теперь давайте нажмем Connect to feed настройки, выберите nuget.exe, и вы увидите:

enter image description here

Скопируйте точно такой же контент в свой mynuget.config файл , Тогда ваш конвейер сборки может получить доступ к вашему опубликованному mypackagetemp.nupkg.

Не удалось получить информацию о 'Serilog.Enrichers.Thread' из удаленного источника 'https://pkgs.dev.azure.com/mycompany/_packaging/myfeed/nuget/FindPackagesById ()? Id ="Serilog.Enrichers.Thread' ', статус ответа код не указывает на успех: 404 (не найден).)

В следующий раз, когда я построил, я обнаружил другую ошибку при поиске WindowsAzure .Storage

Эти пакеты (Serilog.Enrichers.Thread, WindowsAzure.Storage и ...) все доступны в nuget.org, поэтому вам также следует убедиться, что вы добавили nuget.org в качестве исходного кода пакета в файл конфигурации:

enter image description here

Дополнительно:

Согласно вашему описанию, вам нужно использовать только ваш пользовательский канал devops и другие пакеты из nuget.org, кроме использования mynuget.config, вы можете настроить задачу nuget restore следующим образом:

enter image description here

Выберите канал devops напрямую (вторая красная линия) с помощью Feeds I select here вместо Feeds в моем Nuget.config. И установите флажок Use packages from nuget.org. После этого вы сможете получить доступ к пакетам в пользовательских лентах и ​​nuget.org во время сборки.

...