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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (26)

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

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

这会在VS中发出警告

The 'packages' element is not declared.

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

另外我认为默认的定义包不应该引发警告。

提问于
用户回答回答于

你始终可以为“Packages.config”创建简单的xsd模式,以消除此警告。为此,创建名为“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跨多个项目,将其移动到VisualStudioSchema文件夹(路径可能略有不同,它是D:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas(对我而言)。

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

<packages xmlns="urn:packages">

现在,警告应该消失(即使在VisualStudio中打开了Packages.config文件)。

用户回答回答于

扫码关注云+社区