如何将更新推送到 .NET Framework 和 .NET Core 库的 NuGet 源

How to push an update to a NuGet feed for .NET Framework and .NET Core libraries

我在 Azure Artefacts 中有自己的 NuGet 源。目前,提要中有两个包:

顶部是 .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 包更新到我的源源中?

谢谢。

I packed 'INTLConfiguration.Client' and renamed the .nukpg from INTLConfiguration.Client.1.0.0.nupkg to INTLConfiguration.Client.1.0.1.nupkg

看来你的更新只是rename the output xxx.nupkg不是创建更新的 .nupkg 的有效方法xx.nupkg 类似于 .zip。将它从 Name.nupkg 重命名为 Name.zip 然后你可以解压缩它并查看它的内容。打开ProjectName.nuspec可以发现里面定义的版本还是1.0.0.

我的猜测:

也许您使用的打包方式类似于创建 .net 核心项目和 right-click 输出 ProjectName.1.0.0.nupkg 的打包按钮。

1# 如果是这样,解决它的最简单方法是 right-click 解决方案资源管理器中的项目名称=>属性并在那里更改包版本:

改版本为1.0.1,重新打包

2# 我们也可以使用我们为此选项定义的.nuspec 文件。

  1. 向项目添加一个文本文件并将其重命名为xxx.nuspec。将 property window 中的 build action 更改为 content.
  2. Right-click 项目=>卸载项目=>编辑xxx.csproj 文件。

添加如下脚本:

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

然后reload the project,每次我们使用Pack选项时,它都会调用NuspecName.nuspec文件。

To create a nuget package by command-line, I suggest you use dotnet.exe or nuget.exe.

对于您的 .net 核心项目,您可以使用 dotnet pack command。有关它的一些详细信息,请参阅 here

3# 要在不使用 .nuspec 文件的情况下使用 version 1.0.2 创建 .net core 包:

  1. 打开 cmd.exe,然后键入命令:cd C:\PathToProjectFolder 以导航到 ProjectDir(存在 xx.csproj 的位置)

  2. 然后键入 dotnet pack -p:PackageVersion=1.0.1 之类的命令来创建一个真正版本为 1.0.1 的 nuget 包。 (如果目录中只有一个.csproj)

或者您需要像这样指定 .csproj:dotnet pack ~/projects/app1/project.csproj -p:PackageVersion=1.0.1

4# 要使用 .nuspec 文件创建版本为 1.0.2 的 .net 核心包:

  1. 创建一个 .nuspec 文件并修改其内容以满足您的需要(版本、作者姓名...)。

  2. 打开 cmd.exe 并使用如下命令:dotnet pack ~/projects/app1/project.csproj /p:NuspecFile=~/projects/app1/project.nuspec /p:NuspecBasePath=~/projects/app1/nuget

如果在 VS 中使用打包选项(Right-click 项目=>打包按钮),请选中 1# 或 2#。

如果使用command-line,可以勾选3#或者4#。希望对您有所帮助:)

更新:

How do I go about updating both of these nuget packages into my source feed?

您可以勾选this tutorial 来创建一个针对.net 的包framework.And 在打包之前更新.nuspec 中的版本。另外,如果你想获得更新的 nuget 包,我建议你也更新 dll 本身的程序集版本和文件版本。