не showstopper, но при использовании nuget в проекте он создает файл packages.config с этой формой
<?xml version="1.0" encoding="utf-8"?>
<packages>
... your packages
</packages>
это дает предупреждение в VS
The 'packages' element is not declared.
Я думаю, причина проблемы связана с объявлением xml.
Также я думаю, что пакет определений по умолчанию не должен выдавать предупреждений.
Кто-нибудь знает, на что мне его заменить, чтобы я не получал этого предупреждения? (т.е. даже если я вижу его только тогда, когда файл открыт, он также постоянно отображается как предупреждение с включенными определенными правилами CA).
xml
visual-studio
nuget
круглый кризис
источник
источник
Ответы:
Вы всегда можете создать простую схему xsd для 'packages.config', чтобы избавиться от этого предупреждения. Для этого создайте файл с именем «packages.xsd»:
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:packages" xmlns="urn:packages"> <xs:element name="packages"> <xs:complexType> <xs:sequence> <xs:element name="package" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="id" type="xs:string" use="required" /> <xs:attribute name="version" type="xs:string" use="required" /> <xs:attribute name="targetFramework" type="xs:string" use="optional" /> <xs:attribute name="allowedVersions" type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Расположение этого файла (два варианта)
packages.xsd
несколькими проектами, переместите его в папку схем Visual Studio (путь может немного отличаться, этоD:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas
для меня).Затем отредактируйте
<packages>
тег вpackages.config
файле (добавьтеxmlns
атрибут):<packages xmlns="urn:packages">
Теперь предупреждение должно исчезнуть (даже если файл packages.config открыт в Visual Studio).
источник
targetFramework
атрибут в файле схемы xml. Я получаю сообщение об ошибкеtargetFramework attribute is not defined
Вы увидите это только тогда, когда файл открыт. Когда вы закроете файл в Visual Studio, предупреждения исчезнут
http://nuget.codeplex.com/discussions/261638
источник
nuget
иnuget
очень хорошо знает, как использовать этот файл.На самом деле правильный ответ - просто добавить схему в ваш документ, например
<packages xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
...и вы сделали :)
Если XSD еще не кэширован и недоступен, вы можете добавить его из консоли NuGet следующим образом.
Как только это будет сделано, как указано в комментарии ниже, вы можете переместить его из вашей текущей папки в официальную папку схемы, которая находится в
источник
Ни один из ответов не решит вашу проблему навсегда. Если вы перейдете по пути добавления XSD (в меню Xml выберите «Создать схему»), у вас возникнут проблемы с диспетчером пакетов, поскольку он очистит ваш файл packages.config при добавлении нового пакета.
Лучшее решение - просто игнорировать, закрыв файл, когда вы его не используете.
источник
Проблема в том, что вам нужна xsd-схема для
packages.config
.Вот как вы можете создать схему ( я нашел ее здесь) :
Откройте файл конфигурации -> XML -> Создать схему
Это создаст
packages.xsd
для вас и откроет его в Visual Studio:В моем случае,
packages.xsd
был создан по этому пути:C: \ Users \ MyUserName \ AppData \ Local \ Temp
Теперь я не хочу ссылаться на
packages.xsd
файл из папки Temp, но я хочу, чтобы он был добавлен в мое решение и добавлен в систему управления версиями, чтобы другие пользователи могли его получить ... поэтому я скопировалpackages.xsd
и вставил его в папку своего решения. Затем я добавил файл в свое решение:1. Скопируйте
packages.xsd
в ту же папку, что и ваше решение.2. В VS щелкните правой кнопкой мыши решение -> Добавить -> Существующий элемент ... и затем добавьте
packages.xsd
Итак, теперь мы создали
packages.xsd
и добавили его в Решение. Все, что нам нужно сделать, это указать конфигурационному файлу использовать эту схему.Откройте файл конфигурации, затем в верхнем меню выберите:
XML -> Схемы ...
Добавьте свой
packages.xsd
и выберите Использовать эту схему (см. Ниже)источник
Это происходит потому, что VS не знает схему этого файла. Обратите внимание, что этот файл представляет собой скорее деталь реализации, а не то, что вам обычно нужно открывать напрямую. Вместо этого вы можете использовать диалоговое окно NuGet для управления пакетами, установленными в проекте.
источник
Это работает и остается даже после добавления нового пакета:
Добавьте следующий! DOCTYPE над элементом <packages>:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE packages [ <!ELEMENT packages (package*)> <!ELEMENT package EMPTY> <!ATTLIST package id CDATA #REQUIRED version CDATA #REQUIRED targetFramework CDATA #REQUIRED developmentDependency CDATA #IMPLIED> ]>
источник