【问题标题】:TFS 2015 Build Task - NuGet PackagerTFS 2015 构建任务 - NuGet 打包程序
【发布时间】:2017-08-03 21:15:33
【问题描述】:

我目前正在设置构建定义来打包 NuGet。这是我当前的构建任务。它在解决方案成功构建后执行。

我正在使用一个 nuspec 文件来决定包将显示哪些信息。我的 nuspec 文件包含对信息的引用(即从 assemblyinfo.cs 文件中提取)。

运行构建定义我收到以下错误。

Pack NuGet 任务下的 TFS 2015 中是否不支持替换令牌?

【问题讨论】:

  • 能否直接用nuget命令在本地成功打包nuspec文件?

标签: c# tfsbuild nuget-package tfs-2015


【解决方案1】:

打包程序不会替换 .nuspec 文件中的标记(除了 <version/> 元素)。您必须为元素提供值,例如 <id/><description/>。最常见的方法是 硬编码 .nuspec 文件中的值。

来源链接:Pack NuGet packages

使用 token replacement 时,请确保您尝试 nuget 打包 csproj 文件,而不是 nuspec 文件

nuget pack myproject.csproj -IncludeReferencedProjects -Prop Configuration=Release

当给定与 csproj 文件相同的名称时,会自动获取 nuspec。

请参考这个类似的问题:nuget: "The replacement token 'id' has no value"

【讨论】:

  • 感谢您的回答。令人失望的是,打包程序无法从构建中替换令牌。我在本地机器上通过 nuspec 替换令牌没有问题。
  • @Brian 很抱歉给您带来不便。作为一种解决方法,您需要对值进行硬编码或使用.csproj 文件进行打包,
  • 是否有计划将此功能添加到构建任务中?再次感谢帕特里克提供的信息。
  • @Brian 到目前为止还没有消息说他们可以,在最新版本的 TFS2017 更新中仍然不可用。您可以添加uservoice,任何更新都会尽快通知您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-12
  • 2021-07-04
  • 2016-08-27
  • 1970-01-01
  • 2017-07-30
相关资源
最近更新 更多