NuGet包忽略了汇编信息

时间:2015-06-29 03:19:14

标签: nuget-package

当我从命令行运行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,我怎么说服它呢?

3 个答案:

答案 0 :(得分:10)

我认为问题在于自修改AssemblyInfo以来我没有构建我的项目。我做了重建,现在正在工作。

(作为旁注,我在错误的部分也有<dependencies> - 它应该在<metadata>内 - 但这并没有导致我的问题出错。)

答案 1 :(得分:7)

我在这方面也遇到了问题;我对AssemblyInfo的更新似乎没有被提起 - 尽管我建立和重建等等。

我能够通过明确告诉NuGet构建(在我的例子中发布,带有pdb符号)来解决这个问题:

nuget pack foo.csproj -Build -Symbols -Properties Configuration=Release

答案 2 :(得分:0)

这里有同样的问题,但事实证明有人引入了签名密钥,而我所引用的程序集没有很强的名字。

很奇怪我没有遇到其他错误。