我在Azure Artefacts中有自己的NuGet提要。目前,Feed中有两个软件包:
最上面的是.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中?
谢谢。
答案 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#如果是这样,解决该问题的最简单方法是右键单击“解决方案资源管理器”中的“项目名称” =>“属性”,然后在其中更改包版本:
将版本更改为1.0.1,然后再次打包。
2#我们也可以使用我们为该选项定义的.nuspec文件。
xxx.nuspec
。将build action
中的property window
更改为content
。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文件:
打开cmd.exe,然后键入命令:cd C:\PathToProjectFolder
导航到ProjectDir(存在xx.csproj)
然后输入诸如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核心软件包:
创建一个.nuspec文件并修改其内容以满足您的需要(版本,AuthorName ...)。
打开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本身更新程序集版本和文件版本。