web-dev-qa-db-ja.com

nuget 'packages'要素は警告として宣言されていません

showtopperではありませんが、プロジェクトでnugetを使用すると、この形状のpackages.configファイルが作成されます

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

これはVSで警告を与えます

The 'packages' element is not declared.

問題の原因は、私が推測するxml宣言と関係があります。

また、デフォルトの定義パッケージは警告をスローすべきではないと思います。

この警告が表示されないように、何を変更すればよいか誰にもわかりますか? (つまり、ファイルが開いているときにしか表示できない場合でも、特定のCAルールがオンになっていると常に警告として表示されます。)

134
roundcrisis

この警告を取り除くために、 '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>

このファイルの場所(2つのオプション)

  • 「packages.config」ファイルと同じフォルダーで、
  • packages.xsdを複数のプロジェクトで共有する場合は、Visual Studio Schemasフォルダーに移動します(パスは少し異なる場合があります。私にとってはD:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemasです)。

次に、<packages>ファイルのpackages.configタグを編集します(xmlns属性を追加します):

<packages xmlns="urn:packages">

これで、packages.configファイルがVisual Studioで開いている場合でも、警告が消えます。

95
Łukasz Wiatrak

ファイルが開いているときにのみ表示されます。 Visual Studioでファイルを閉じると、警告は消えます

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

182

実際、これに対する正しい答えは、スキーマをドキュメントに追加することです。

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

...これで完了です:)

XSDがまだキャッシュされておらず利用できない場合、NuGetコンソールから次のように追加できます。

Install-Package NuGet.Manifest.Schema -Version 2.0.0

これが完了すると、以下のコメントに記載されているように、現在のフォルダーから、次の場所にある公式のスキーマフォルダーに移動できます。

%VisualStudioPath%\Xml\Schemas
112

答えがどれもあなたの問題を永久に解決することはありません。 XSDを追加するパスに移動すると(Xmlメニューから[スキーマの作成]を選択)、新しいパッケージを追加するときにpackages.configファイルがクリーンアップされるため、パッケージマネージャーで問題が発生します。

最善の解決策は、使用しないときにファイルを閉じることで無視することです。

6
Baris

これは、VSがこのファイルのスキーマを知らないために発生します。このファイルは実装の詳細であり、通常は直接開く必要のないものです。代わりに、NuGetダイアログを使用して、プロジェクトにインストールされたパッケージを管理できます。

4
David Ebbo

問題は、packages.configのxsdスキーマが必要なことです。

これは、スキーマを作成する方法です( ここで見つけました)

構成ファイルを開く-> XML-> Create Schema

enter image description here

これにより、packages.xsdが作成され、Visual Studioで開きます。

enter image description here

私の場合、packages.xsdは次のパスで作成されました。

C:\ Users\MyUserName\AppData\Local\Temp

一時フォルダーからpackages.xsdを参照したくありませんが、ソリューションに追加してソース管理に追加して、他のユーザーが取得できるようにしたいので... packages.xsdとソリューションフォルダーに貼り付けました。次に、ファイルをソリューションに追加しました。

1。ソリューションと同じフォルダーにpackages.xsdをコピーします

2。 VSから、ソリューション->追加->既存のアイテム...を右クリックし、packages.xsdを追加します。

enter image description here

それで、packages.xsdを作成し、ソリューションに追加しました。必要なことは、このスキーマを使用するように構成ファイルに指示することだけです。

構成ファイルを開き、トップメニューから次を選択します。

XML->スキーマ...

packages.xsdを追加し、このスキーマを使用するを選択します(以下を参照)

enter image description here

3
Hooman Bahreini