NuGet Pack .nuspec文件返回“替换令牌'版本'没有值。”

时间:2014-04-14 17:46:46

标签: nuget token nuget-package author nuspec

这是我在尝试在Visual Studio 2013中打包项目时遇到的错误:

PM> NuGet Pack C:\ITVizion\RTVizion\ITVizion.RTVizion.Service\ITVizion.RTVizion.Service.nuspec -Prop Configuration=Release
Attempting to build package from 'ITVizion.RTVizion.Service.nuspec'.
NuGet : The replacement token 'version' has no value.
At line:1 char:1
+ NuGet Pack C:\ITVizion\RTVizion\ITVizion.RTVizion.Service\ITVizion.RTVizion.Serv ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (The replacement...' has no value.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

这有什么问题?

2 个答案:

答案 0 :(得分:5)

我发现了问题:

enter image description here

确保填写项目Assembly Information页。

您可以在Visual Studio Solution Explorer中右键单击项目来访问它。选择Application tab => Assembly Information...按钮。

答案 1 :(得分:3)

如果其他人有类似的错误消息,并且发现即使在程序集信息中确实指定了该信息,错误消息也不会消失,我想出了一个修复程序。我没有在其他人的答案中看到这一点,并注意到这实际上与文档所说的相矛盾。

使用各种$id$$author$等替代令牌以及任何自定义替换值创建 SomeProject.nuspec 后,文档会指示您随后放置SomeProject.nuspec **与 SomeProject.csproj 位于同一目录中,并运行

nuget.exe pack SomeProject.csproj -Build

这对我不起作用 - 我在更换令牌方面遇到了错误。

然而, 为我工作 是打电话

nuget.exe pack -Build

在与nuspec和csproj文件相同的目录中, 不带 指定要使用的csproj或nuspec文件。这成功地创建了nupkg文件,替换的标记根据我在nuspec中指定的内容进行了适当的替换!

希望这些信息对那里的其他人有用!