Как отправить обновление в канал NuGet для библиотек .NET Framework и .NET Core - PullRequest
0 голосов
/ 20 июня 2019

У меня есть собственный канал NuGet в артефактах Azure. В настоящее время в ленте есть две упаковки:

  • INTLConfiguration.Client [Версия 1.0.0]
  • INTLConfiguration.NetFramework.Client [Версия 1.0.0]

Верхняя часть - это библиотека .NET Core, а нижняя - библиотека .NET Framework.

Мне нужно отправить обновление для канала NuGet для обеих версий, чтобы оно было 1.0.1 - но у меня возникли некоторые проблемы с этим. Я упаковал файл INTLConfiguration.Client и переименовал файл .nukpg с INTLConfiguration.Client.1.0.0.nupkg на INTLConfiguration.Client.1.0.1.nupkg и попытался отправить nuget в мой источник, но он вызвал ошибку, сообщив, что v1.0.0 уже существует.

Как мне обновить оба этих пакета nuget в моем источнике?

Спасибо.

1 Ответ

1 голос
/ 21 июня 2019

Я упаковал INTLConfiguration.Client и переименовал .nukpg из INTLConfiguration.Client.1.0.0.nupkg в INTLConfiguration.Client.1.0.1.nupkg

Кажется, чтоВаше обновление только до rename the output xxx.nupkg.Это неправильный способ для создания updated .nupkg .xx.nupkg - это что-то вроде .zip.Переименовав его из Name.nupkg в Name.zip, вы сможете разархивировать его и посмотреть его содержимое.Откройте ProjectName.nuspec, и вы можете найти версию, определенную в нем, по-прежнему 1.0.0.

Мое предположение:

Может быть, способ упаковкинапример, создание основного проекта .net и щелчок правой кнопкой мыши по кнопке pack, которая выводит ProjectName.1.0.0.nupkg.

1 # Если это так, самый простой способ решить это - щелкнуть правой кнопкой мыши имя проекта в обозревателе решений => Свойства и изменить там версию пакета:

enter image description here

Измените версию на 1.0.1 и запакуйте ее снова.

2 # Также мы можем использовать файл .nuspec, определенный нами дляэтот вариант.

  1. Добавить текстовый файл в проект и переименовать его в xxx.nuspec.Измените build action в property window на content.
  2. Щелкните правой кнопкой мыши проект => выгрузите проект => отредактируйте файл xxx.csproj.

Добавьте в него скрипт, подобный приведенному ниже:

<PropertyGroup>
  <NuspecFile>NuspecName.nuspec</NuspecFile>
</PropertyGroup>

Затем reload the project, каждый раз, когда мы используем опцию Pack, он вызывает NuspecName.nuspec file.

Чтобы создать пакет nuget с помощью command-line, я предлагаю вам использовать dotnet.exe или nuget.exe .

Для основного проекта .net выможно использовать dotnet pack command. Некоторые подробности об этом см. здесь .

3 # Чтобы создать пакет .net core с version 1.0.2 без использования файла .nuspec:

  1. Откройте cmd.exe и введите команду: cd C:\PathToProjectFolder, чтобы перейти к ProjectDir (где существует xx.csproj)

  2. Затем введитекоманда, подобная dotnet pack -p:PackageVersion=1.0.1, чтобы создать действительно пакет nuget версии 1.0.1.(Если у вас есть только один .csproj в директории)

Или вам нужно указать .csproj как: dotnet pack ~/projects/app1/project.csproj -p:PackageVersion=1.0.1

4 # Чтобы создать основной пакет .net с версией 1.0.2, используя файл .nuspec :

  1. Создайте файл .nuspec и измените его содержимое в соответствии с вашими потребностями(Version, AuthorName ...).

  2. Откройте cmd.exe и используйте команду, например: dotnet pack ~/projects/app1/project.csproj /p:NuspecFile=~/projects/app1/project.nuspec /p:NuspecBasePath=~/projects/app1/nuget

Если вы используетеОпция Pack (щелкните правой кнопкой мыши проект => Кнопка Pack) в VS, отметьте 1 # или 2 #.

Если вы используете командную строку, вы можете проверить 3 # или 4 #.Надеюсь, это поможет:)

Обновление:

Как мне обновить оба этих пакета nuget в моем фиде исходного кода?

Вы можете проверить в этом руководстве , чтобы создать пакет, предназначенный для .net framework. И обновите версию в .nuspec, прежде чем упаковать ее.Также, если вы хотите получить обновленный пакет nuget, я предлагаю вам обновить версию сборки и версию файла для самой dll.

...