Пакет 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
Здесь же проблема, но выясняется, что кто-то представил ключ подписи, и я ссылался на сборки, у которых не было сильного имени.
Странно, что я не получил другую ошибку.