Используя сборку VSTS CI для библиотеки классов C # и NuGet push, как вы определяете имя пакета NuGet? - PullRequest
0 голосов
/ 04 мая 2018

У меня есть библиотека классов C #, предназначенная для .NET 4.7.2, для которой я использую VSTS для сборки и развертывания в частном фиде пакетов NuGet всякий раз, когда я нажимаю коммит. Это все отлично работает.

У меня также есть устаревший проект, нацеленный на .NET 4.0, в котором я хотел бы использовать вышеуказанную библиотеку. Я создал новую ветвь своей библиотеки и перенес ее на целевой .NET 4.0 (пришлось удалить некоторые неподдерживаемые функции) и создал новую сборку VSTS CI, которая вызывается толчками в этой ветке. Опять все работает нормально.

Проблема в том, что полученный пакет NuGet просто отображается как новая версия .NET 4.7.2! В идеале я хотел бы, чтобы в моем личном фиде отображались 2 пакета: MyPackage и MyPackage.dotnet40

Это вообще возможно? Или я должен делать что-то совершенно другое?

решаемые

Благодаря ответу @ DanielMann, приведенному ниже, я решил эту проблему, добавив файл .nuspec в свой проект и реконфигурировав (слегка) задачу пакета NuGet в своем определении сборки VSTS:

  1. перейдите к project root (не решение) в командной строке
  2. запустите nuget spec, чтобы создать файл .nuspec вместе с файлом .csproj (может потребоваться добавить nuget.exe к вашей переменной PATH)
  3. заполните файл .nuspec. Я заменил все заполнители, кроме $version$, который VSTS автоматически заменяет, но вы можете указать значения для всех заполнителей в задаче пакета Nuget в разделе «Дополнения»> «Дополнительные свойства сборки». Важным является заполнитель $id$, замените его так, как вы хотите, чтобы ваш пакет назывался
  4. добавить .nuspec к управлению исходным кодом и зафиксировать / нажать
  5. обновите задачу пакета NuGet так, чтобы она указывала на ваш новый файл .nuspec, а не на .csproj файл

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Если ваш проект, который упаковывается, имеет файл .nuspec, измените имя пакета в файле NuSpec.

Если оно основано на имени проекта, измените имя проекта.

В принципе, здесь нет проблем - вы раздвоили базу кода, поэтому у вас есть две совершенно разные сущности, с которыми вы можете делать все, что захотите.

0 голосов
/ 04 мая 2018

Вы должны создать отдельный канал и настроить таргетинг на новый проект.

...