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

时间:2019-06-20 09:06:20

标签: visual-studio nuget nuget-package

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

  • INTLConfiguration.Client [版本1.0.0]
  • INTLConfiguration.NetFramework.Client [版本1.0.0]

最上面的是.NET Core库,最下面的是.NET Framework库。

我需要将两个版本的NuGet Feed都更新为1.0.1-但是这样做有些麻烦。我打包了'INTLConfiguration.Client'并将.nukpg从INTLConfiguration.Client.1.0.0.nupkg重命名为INTLConfiguration.Client.1.0.1.nupkg,并尝试将nuget推送到我的源feed中,但是它出错并显示一条冲突消息,指出v1.0.0已经存在。

如何将这两个nuget包都更新到源Feed中?

谢谢。

1 个答案:

答案 0 :(得分:1)

  

我打包了'INTLConfiguration.Client'并将其重命名为.nukpg   INTLConfiguration.Client.1.0.0.nupkg到   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核心项目,然后右键单击打包按钮,这会输出一个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文件。

  

要通过command-line创建nuget包,建议您使用dotnet.exe or nuget.exe

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

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之类的命令来创建一个真正的版本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文件并修改其内容以满足您的需要(版本,AuthorName ...)。

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

如果在VS中使用Pack选项(右键单击project => Pack按钮),请选中1#或2#。

如果使用命令行,则可以检查3#或4#。希望对您有所帮助:)

更新

  

我该如何将这两个nuget软件包都更新到我的源代码中   喂?

您可以选中this tutorial创建一个针对.net框架的软件包。并在打包之前在.nuspec中更新版本。另外,如果要获取更新的nuget程序包,建议您也为dll本身更新程序集版本和文件版本。