Опубликовать пакет символов *.snupkg в частной ленте в VSTS

Я хочу упаковать и опубликовать стандартный код на основе.net в виде пакета nuget, используя сборку VSTS. Я создал частную ленту новостей (в VSTS Artifacts), в которую я хотел бы опубликовать пакет nuget вместе с пакетом символов.

Я пытался использовать задачи CLI dotnet для создания и публикации, но он публиковал только.nupkg, а не *.snupkg в ленту новостей.

Я много гуглил, но нашел только статьи, связанные с публикацией на nuget.org, а не с частной подачей.

3 ответа

Решение

Опубликовать пакет символов *.snupkg в частной ленте в VSTS

Вы можете опубликовать пакет символов.snupkg на NuGet.org или на любом сервере NuGet, который использует эту возможность. Но у лазурного девопа в приватной ленте такого опыта нет.

Вы можете получить подробную информацию из этой вики Улучшения отладки и пакетов NuGet:

  • При публикации пакетов и пакет символов, и файл.nupkg будут легко публиковаться на NuGet.org или на любом сервере NuGet, который использует эту возможность.

Причина:

Как мы знаем, когда мы потребляем .snupkg в Visual Studio мы добавляем новое расположение сервера символов в расположении файла символов (.pdb):

Но Visual Studio может анализировать только файл символов (.pdb) напрямую, а не .snupkg пакет, поэтому нам нужен сервер NuGet, чтобы помочь нам прочитать .pdb файл из .snupkg пакет. Фид Azure devops более склонен быть общим хранилищем пакетов.

Итак, мы должны опубликовать пакет символов *.snupkg на NuGet.org или на любом сервере NuGet, который использует эту возможность.

Если вы не хотите делиться своим пакетом на nuget.org, вы можете разместить свой собственный сервер NuGet или использовать упрощенное решение для решения этой проблемы (вы можете отлаживать пакет nuget с помощью частного канала).

Надеюсь это поможет.

Возможно, вы захотите просто вставить символ PDB в основной пакет NuGet. IMO - это лучший подход сегодня - он намного проще, устраняет необходимость в сервере символов и хорошо работает со всеми типами репозиториев, частные VSTS/Azure DevOps служат для общедоступных репозиториев. Единственным недостатком является то, что клиенты должны загружать более крупные пакеты NuGet, даже если они не используют отладочную информацию, но это кажется незначительным.

Добавление PDB в пакет NuGet - это обычно всего лишь вопрос добавления этого в файл вашего проекта:

<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>

См. NuGet #4142 и Включить файлы pdb в мои файлы nuget (nupkg).

Azure Artifacts в настоящее время не поддерживает .snupkgНо у него есть сервер символов, который вы можете опубликовать, если строите с помощью конвейеров Azure. Этот документ посвящен настройке конвейера, который публикует символы.

Вы можете опубликовать файлы snupkg в DevOps Azure, но на этом этапе вы не можете использовать их для VS с помощью VS. Вот как я это сделал:

1) настроить задачу "Использовать.Net Core" для обновления.net SDK до версии, которая поддерживает это (как показано ниже)

2) настроить пользовательскую команду пакета dotnet (как показано ниже)

3) отправьте его в Azure, используя команду push netnet (как показано ниже)

Это приводит к выталкиванию snupkg в артефакты DevOps Azure, таким образом:

Другие вопросы по тегам