nuget'packages'元素没有声明警告

不是一个showstopper,但是当在项目中使用nuget时,它会创build一个带有这个形状的packages.config文件

<?xml version="1.0" encoding="utf-8"?> <packages> ... your packages </packages> 

这在VS中给出警告

 The 'packages' element is not declared. 

问题的根源与我猜想的xml声明有关。

另外我认为,默认的定义包不应该抛出警告。

有谁知道我应该改变它,所以我没有得到这个警告? (即使我只能在文件打开的时候才能看到它,它也会不断地显示某些CA规则的警告。)

你总是可以为'packages.config'制作简单的xsd模式来摆脱这个警告。 为此,创build名为“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.config”文件相同的文件夹中,
  • 如果要在多个项目中共享packages.xsd ,请将其移至Visual Studio Schemas文件夹(path可能略有不同,对我而言,它是D:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas )。

然后,在packages.config文件中编辑<packages>标记(添加xmlns属性):

 <packages xmlns="urn:packages"> 

现在,警告应该消失(即使在Visual Studio中打开packages.config文件)。

只有当文件打开时才会看到它。 当您在Visual Studio中closures文件时,警告消失

http://nuget.codeplex.com/discussions/261638

实际上,正确的答案就是将模式添加到文档中,就像这样

 <packages xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 

…你完成了:)

如果XSD尚未caching且不可用,则可以按照以下步骤从NuGet控制台添加它

 Install-Package NuGet.Manifest.Schema -Version 2.0.0 

完成此操作后,如下面的注释中所述,您可能希望将其从当前文件夹移到在其中find的官方架构文件夹

 %VisualStudioPath%\Xml\Schemas 

发生这种情况是因为VS不知道这个文件的模式。 请注意,该文件更多的是实现细节,而不是您通常需要直接打开的东西。 相反,您可以使用NuGet对话框来pipe理项目中安装的软件包。

没有答案会永久解决你的问题。 如果你到了添加XSD的path(从Xml菜单中select“Create schema”),你将最终遇到与包pipe理器有关的问题,因为它会在你添加一个新包的时候清理你的packages.config文件。

最好的解决办法就是在不使用文件时closures文件。