Пакет NuGet игнорирует информацию о сборке

Когда я запускаю nuget pack MyProject.csproj из командной строки, я получаю следующую ошибку:

Замена маркера "автор" не имеет значения.

Я проверил свой сборник, а AssemblyCompany указан как "AJ Richardson". Я попытался вручную заменить $author$ на AJ Richardson в моем файле nuspec, но потом я получил немного другую ошибку:

Символ замены "описание" не имеет значения.

Но также указывается AssemblyDescription. Кажется, что NuGet ничего не читает из моей AssemblyInfo. Я проверил, что AssemblyInfo включен в мой проект, и для действия сборки установлено значение "Скомпилировать".

Я сделал пару пакетов 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 и как я могу убедить его в этом?

Ответ 1

Я думаю, проблема заключалась в том, что я не создал свой проект с момента модификации AssemblyInfo. Я сделал перестроение, и теперь он работает.

(Как примечание, у меня также были <dependencies> в неправильном разделе - он должен быть внутри <metadata> но это не вызывало ошибку в моем вопросе.)

Ответ 2

У меня также были проблемы в этом отношении; мои обновления в AssemblyInfo, похоже, не были подняты - несмотря на то, что я строил и перестраивал и т.д.

Я смог решить проблему, явно сообщив NuGet о создании (в моем случае в Release, с символами pdb):

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

Ответ 3

Здесь же проблема, но выясняется, что кто-то представил ключ подписи, и я ссылался на сборки, у которых не было сильного имени.

Странно, что я не получил другую ошибку.