使用VSTS和Nuget Pack自动添加nuget依赖项

时间:2018-06-13 13:07:54

标签: visual-studio nuget azure-devops nuspec nuget-spec

我正在使用Visual Studio Team Services为我作为Nuget包发布的库运行构建。

该项目包含一个nuspec文件,该文件指定名称,描述,项目URL和其他静态信息。

此nuspec文件在VSTS中的Nuget包构建操作

中引用

enter image description here

我想包含有关依赖项的信息,但是,我不想在nuspec XML中手动管理(容易出错且耗时)。

nuspec文件不包含该元素,因此我希望VSTS NuGet包操作会自动包含它们。

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:0)

您可以使用新的" SDK样式" csproj格式将NuGet问题转移到单个csproj文件中,该文件允许您在一个地方指定依赖项和静态元数据。

最好开始创建.NET标准库并将<TargetFramework>属性从netstandard2.0更改为之前定位的框架 - 例如net452。 (或选择适当的.NET标准版本)

可以使用msbuild /t:Packdotnet pack

打包此项目类型

当您添加项目或NuGet包引用时,这些将在打包期间自动变为依赖关系,如果您通过通配符(1.2.*)引用包,则包将取决于还原期间解析的版本。 VS提供了一个对话框,用于在项目属性中编辑此项目类型的包元数据。

答案 1 :(得分:0)

显然,存在一个非常简单的解决方案 您可以将VSTS Nuget包任务设置为使用csproj文件(而不是nuspec),但它仍将访问nuscpec以获取元数据。请参阅以下日志:

enter image description here

重申一下,不要在VSTS中的构建任务中设置nuspec文件的模式,而是设置csproj文件的路径。