当我从命令行运行nuget pack MyProject.csproj
时,出现以下错误:
替换令牌'author'没有任何价值。
我检查了我的AssemblyInfo,而AssemblyCompany被指定为“AJ Richardson”。我尝试在我的nuspec文件中用$author$
手动替换AJ Richardson
,但后来我的错误略有不同:
替换令牌'description'没有价值。
但是也指定了AssemblyDescription
。似乎NuGet没有从我的AssemblyInfo
中读取任何内容。我已经验证我的项目中包含AssemblyInfo
,并且构建操作设置为Compile。
之前我制作了几个NuGet包,没有任何问题。这个包和我以前的包之间的唯一区别是这个包有依赖性。
供参考,这是我的nuspec:
<?xml version="1.0"?>
<package>
<metadata>
<id>$id$</id>
<version>1.0.0</version>
<title>$title$</title>
<authors>$author$</authors>
<owners>$author$</owners>
<licenseUrl>https://github.com/my/repo/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/my/repo</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>$description$</description>
<releaseNotes>Initial release.</releaseNotes>
<copyright>Copyright AJ Richardson 2015</copyright>
<tags></tags>
</metadata>
<dependencies>
<dependency id="Newtonsoft.Json" version="6.0.1" />
</dependencies>
</package>
所以我的问题是,为什么NuGet不是在阅读我的AssemblyInfo
,我怎么说服它呢?
答案 0 :(得分:10)
我认为问题在于自修改AssemblyInfo
以来我没有构建我的项目。我做了重建,现在正在工作。
(作为旁注,我在错误的部分也有<dependencies>
- 它应该在<metadata>
内 - 但这并没有导致我的问题出错。)
答案 1 :(得分:7)
我在这方面也遇到了问题;我对AssemblyInfo的更新似乎没有被提起 - 尽管我建立和重建等等。
我能够通过明确告诉NuGet构建(在我的例子中发布,带有pdb符号)来解决这个问题:
nuget pack foo.csproj -Build -Symbols -Properties Configuration=Release
答案 2 :(得分:0)
这里有同样的问题,但事实证明有人引入了签名密钥,而我所引用的程序集没有很强的名字。
很奇怪我没有遇到其他错误。