Bezdepbonusu7Программирование: статьи и ответы

Вопрос

VSTS Automated Build NuGet Packager/Publisher

Автор вопроса: LorneCashОтветов: 2

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

Из того, что я прочитал, я поместил свой контент в NuGet Packager в дополнительные свойства сборки, и когда я смотрю файл журнала, я вижу это:

...NuGet.exe pack "...csproj" -OutputDirectory "..." -Properties Configuration=release;Description="My Description";Authors="Me";Owners="My Company"

Из документации я считаю, что сделал это правильно (но явно не так). Это кажется немного запутанным в отношении того, что происходит в "Дополнительных свойствах сборки" по сравнению с аргументами NuGet.

Опять же, моя цель - получить описание и автора, которые я установил для просмотра в диспетчере пакетов NuGet в Visual Studio.

nugetnuget-packagenuget-spectfsbuild

Ответы

Ответ 1 · рейтинг 3 · starian chen-MSFT

Вы можете создать пакет в соответствии с файлом .nuspec. Шаги:

  1. Создайте файл .nuspec для своего проекта (команда: nugget spec).

Например: (включая автора и токен описания)

<?xml version="1.0"?>
<package >
  <metadata>
    <id>CommLib1</id>
    <version>1.0.0.6</version>
    <title>CommLib1</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
    <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
    <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2016</copyright>
    <tags>Tag1 Tag2</tags>
  </metadata>
</package>
  1. Включить этот файл в систему управления версиями
  2. Укажите аргументы Nuget (токен на шаге 1) шага сборки Nuget Packager

Обновление1:

В общем, вам просто нужно обновить файл AssemblyInfo.cs вашего проекта (Author=>AssemblyCompany; Description=>AssemblyDescription; Version=>AssemblyVersion), он создает пакет в соответствии с этими данными, если он не может получить метаданные из вашей сборки ( У меня есть проект с этой проблемой).

Итак, шаги:

  1. Убедитесь, что nuget может получить необходимые метаданные, создав пакет с помощью команды nuget.exe непосредственно на вашем локальном компьютере или компьютере сборки (пакет nuget [XX].csproj).

  2. Создайте определение сборки (1. Сборка Visual Studio 2. Nuget Packager со значением по умолчанию 3. Nuget Publisher)

Ответ 2 · рейтинг 1 · LorneCash

Если это сборка пакета, то с этапом сборки NuGet Packager проблем не возникнет. Однако нужно изменить две вещи.

  1. Чтобы указать свойства, как вы делаете, ДОЛЖЕН быть токенизированный файл *.nuspec в том же каталоге, что и файл решения с тем же именем, и, конечно, файл *.nuspec должен быть зарегистрирован в VSTS/TFS.
  2. Имя маркера для описания не может быть Описанием.

Дополнительные сведения о файле *.nuspec см. в решении здесь:

Пакет Nuget.exe ПРЕДУПРЕЖДЕНИЕ. Описание не указано. Использование "Описания"

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы