#.net #nuget #nuspec
#.net #nuget #nuspec
Вопрос:
Я пытаюсь обновить пакет nuget, чтобы добавить некоторые ссылки на сборки, но я получаю следующую ошибку:
Элемент ‘metadata’ в пространстве имен ‘http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd ‘ имеет недопустимый дочерний элемент frameworkAssemblies’ в пространстве имен http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd‘. Ожидаемый список возможных элементов: ‘зависимости, язык, сводка’ в пространстве имен ‘http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd‘
Я полагаю, что эта функциональность была добавлена в NuGet 1.2 — я использую 1.2.2213.45.
Вот мой файл nuspec:
<?xml version="1.0"?>
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>PetaPoco.Core</id>
<title>PetaPoco.Core - A tiny ORMish thing for your POCOs (Core Only)</title>
<version>3.0.0</version>
<authors>Topten Software</authors>
<owners>Topten Software</owners>
<licenseUrl>http://www.toptensoftware.com/petapoco/license</licenseUrl>
<projectUrl>http://www.toptensoftware.com/petapoco/</projectUrl>
<iconUrl>http://www.toptensoftware.com/petapoco/nuget_icon.png</iconUrl>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>
PetaPoco is a tiny, single file .NET data access layer inspired by Massive that works with both non-dynamic POCO objects and dynamics.
This package includes the just the core PetaPoco library (ie: no T4 templates)
</description>
<tags>ORM POCO MVC MVC2 MVC3 ASP.NET WebForms WebMatrix MySQL Database</tags>
<frameworkAssemblies>
<frameworkAssembly assemblyName="System.Data" />
<frameworkAssembly assemblyName="System.Configuration" />
</frameworkAssemblies>
</metadata>
<files>
<file src="PetaPoco.cs" target="ContentModels" />
</files>
</package>
Ответ №1:
Я думаю, у вас устаревшая версия nuget.exe . Вы можете просто запустить «обновление nuget», и оно обновится до последней версии (которая на сегодняшний день равна 1.3.20425.372). Тогда ваш nuspec должен работать нормально!
Комментарии:
1. Спасибо, Дэвид, это сработало. Странная причина, по которой я фактически удалил nuget и установил 1.3. VS extension manager показывал 1.3, но командная строка по-прежнему была 1.2.
2. На самом деле, nuget.exe вообще не поставляется с расширением VS, так что вы, вероятно, в какой-то момент получили его откуда-то еще. Проверка его местоположения может помочь вспомнить, как он туда попал.
Ответ №2:
Вы также можете получить эту ошибку, если разместили элемент в неправильном месте.
например, вы размещаете <dependencies>
элементы за пределами <metadata>
элемента.
Ответ №3:
Я тоже столкнулся с этим после установки / удаления бета-версии VS11.
Переустановка nuget со страницы проекта codeplex для меня довольно быстро решила проблему.