VSTS 自动构建 NuGet Packager/Publisher

VSTS Automated Build NuGet Packager/Publisher

我的包构建成功并上传到 VSTS 中的包提要但是我似乎无法弄清楚如何编辑包的描述和作者以便我的设置值显示在包提要中。

根据我的阅读,我将我的内容放在 NuGet Packager 的附加构建属性下,当我查看日志文件时,我看到了这个:

...NuGet.exe pack "...csproj" -OutputDirectory "..." -Properties Configuration=release;Description="My Description";Authors="Me";Owners="My Company"

根据文档,我相信我做对了(但显然我没有)。 "Additional build properties" 与 NuGet 参数中的内容似乎有点令人困惑。

同样,我的目标是获取我设置为可从 Visual Studio.

中的 NuGet 包管理器查看的描述和作者

您可以根据.nuspec 文件创建一个包。 步骤:

  1. 为您的项目生成 .nuspec 文件(命令:nugget spec)。

例如:(包括作者和描述标记)

<?xml version="1.0"?>
<package >
  <metadata>
    <id>CommLib1</id>
    <version>1.0.0.6</version>
    <title>CommLib1</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
    <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
    <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2016</copyright>
    <tags>Tag1 Tag2</tags>
  </metadata>
</package>
  1. 将此文件包含到源代码管理中
  2. 指定 Nuget Packager 构建步骤的 Nuget 参数(步骤 1 中的标记)

更新 1:

一般来说,你只需要更新你的项目的AssemblyInfo.cs文件(Author=>AssemblyCompany; Description=>AssemblyDescription; Version=>AssemblyVersion),它根据这个数据创建包,除非它不能'从你的程序集中检索元数据(我有一个项目有这个问题)。

所以,步骤:

  1. 确保 nuget 可以通过 nuget.exe 命令直接在 local/build 机器上创建包来检索必要的元数据 (nuget pack [XX].csproj)

  2. 创建构建定义(1.Visual Studio 构建 2.默认值的 Nuget Packager 3.Nuget Publisher)

如果它正在构建包,那么您的 NuGet Packager 构建步骤没有问题。不过有两件事需要改变。

  1. 为了像您正在做的那样指定属性,必须在与解决方案文件相同的目录中有一个同名的标记化 *.nuspec 文件,当然需要将 *.nuspec 文件签入 VSTS/TFS.
  2. 描述的令牌名称不能是 Description。

有关 *.nuspec 文件的更多详细信息,请参阅此处的解决方案: