如何仅使用CLI将标签包含在NuGet包中

时间:2018-02-04 18:39:26

标签: nuget azure-devops nuget-package

我想为nuget包添加Tags。 我不想使用单独的.nuspec文件(维护), 我只使用csproj进行包装。

我已尝试使用nuget pack -Properties Tags=demo进行设置,但似乎无法正常工作..?

我试图解决一个更大的问题来创建一些可追溯性 使用标签中构建的提交ID? (在VSTS上使用 Build.SourceVersion

参考文献:

3 个答案:

答案 0 :(得分:1)

.nupsec cli添加标记时,您应该指定nuget pack文件。

您可以在.nupsec文件中设置元数据。您只能在.nuspec文件中手动修改它以修改标签。此外,您还可以修改项目的assemblies.cs文件中的元数据,但不能修改标签。

您也可以找到有关nuget pack -properties选项的详细信息:

  

指定覆盖项目中值的属性列表   文件;有关属性名称,请参阅常见MSBuild Project Properties。该   这里的属性参数是令牌=值对的列表,以?分隔   分号,$token$文件中每次出现.nuspec的分号   用给定的值替换。值可以是引号中的字符串   分数。请注意,对于“配置”属性,默认值为   “调试”。要更改为发布配置,请使用-Properties   Configuration=Release

所以标签不包含在Properties参数中,您只能使用$token$参数修改.nuspec文件中的-Properties

答案 1 :(得分:1)

实际上,与其他回复中所说的相反,有一种方法可以在没有nuspec文件的情况下执行此操作。

参考这里: https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets#pack-target

NuGet也通过csproj支持大多数nuspec元素。

所以在你的csproj中,你会有类似的东西:

<PackageTags>MyTag1;MyTag2</PackageTags>

答案 2 :(得分:0)

您可以在.nuspec文件中添加一个占位符。

<tags>$tags$</tags>

,然后使用CLI设置属性。

C:> Nuget pack project.nuspec -Properties tags="MyTags"