nuget 'packages' element is not declared warning
Solution 1:
You will see it only when the file is open. When you'll close the file in Visual Studio the warnings goes away
http://nuget.codeplex.com/discussions/261638
Solution 2:
Actually the correct answer to this is to just add the schema to your document, like so
<packages xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
...and you're done :)
If the XSD is not already cached and unavailable, you can add it as follows from the NuGet console
Install-Package NuGet.Manifest.Schema -Version 2.0.0
Once this is done, as noted in a comment below, you may want to move it from your current folder to the official schema folder that is found in
%VisualStudioPath%\Xml\Schemas
Solution 3:
You can always make simple xsd schema for 'packages.config' to get rid of this warning. To do this, create file named "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>
Location of this file (two options)
- In the same folder as 'packages.config' file,
- If you want to share
packages.xsd
across multiple projects, move it to the Visual Studio Schemas folder (the path may slightly differ, it'sD:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas
for me).
Then, edit <packages>
tag in packages.config
file (add xmlns
attribute):
<packages xmlns="urn:packages">
Now the warning should disappear (even if packages.config file is open in Visual Studio).