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文件时,警告消失
实际上,正确的答案就是将模式添加到文档中,就像这样
<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文件。