添加nuget软件包时不会自动安装任何依赖项

时间:2020-03-04 04:41:52

标签: tfs package nuget .net-standard build-definition

我正在为内部使用创建一个小的nuget包(我创建了.NET标准项目以同时使用.NET Framework或.NET Core)。我创建了一个构建定义来构建该库,然后将其推送到我公司的Nuget提要中。

我有2个问题:

  1. 在tfs 2017中对构建进行排队时,如何设置它自动增加nuget软件包的版本?我可以为我的软件包设置诸如Author,Company ...之类的信息吗?

  2. 在TFS软件包中包含该软件包之后。我试图将我的nuget包添加到我的项目中。 nuget引用的软件包未自动添加到项目中。我可以看到,它显示为“无依赖项”,但是实际上,我在库中使用了2个软件包:Newtonsoft和StackExchange.Redis。因此,当我运行调试时,错误显示为“找不到StackExchange.Redis ...”

这很奇怪

No dependencies displayed

在我的Libary项目设置中,我可以看到

Library configuration

1 个答案:

答案 0 :(得分:1)

有两种打包nuget包的方法。您可以使用“ nuget pack”或“ dotnet pack”(如果您的解决方案中有一些dotnet核心)。区别在于dotnet pack将在nuspec中创建一个依赖项部分,除非安装了实际的nuspec文件,否则安装默认情况下将不会安装nuget pack的依赖项。如果确实创建了nuspec文件,则需要在文件中添加依赖项部分,以便在安装时弹出它们。检查here以获得有关nuspec文件的信息。

对于您的版本号,它实际上也位于元数据部分的nuspec文件中,其中包含带有所需版本的标签。 TFS nuget pack任务作为下拉列表,您可以用来发送版本号。对于此任务,您可以直接使用nuspec文件,也可以直接使用csproj。

enter image description here

使用dotnet core任务对dotnet pack拥有相同的选项 enter image description here

更新

如果您在选项标签中将内部版本号版本模式更改为4(或3)位数字模式,例如$(Date:yyyy.MM.dd)。$(Rev:r)例如2020.03.05.xx(其中xx将在同一天为每个构建增加,第二天降为1)或1.0。$(Rev:r)将是1.0.xx,它将永久增加,直到您更改1.0值,然后使用“使用内部版本号”将为您完成。

enter image description here

相关问题