しかし、プロジェクトでnugetを使用する場合、packages.configファイルにこのような形状のファイルが作成されます。
<?xml version="1.0" encoding="utf-8"?>
<packages>
... your packages
</packages>
これはVSで警告を出します。
The 'packages' element is not declared.
この問題の原因は、xmlの宣言と関係があるようです。
また、デフォルトの定義パッケージは警告を出すべきでは無いと思います。
この警告が出ないようにするには、何を変更すればいいのか、誰か知っていますか?(たとえファイルを開いているときだけ見ることができても、あるCAルールをオンにしていると常に警告として表示されます。)
ファイルを開いているときだけ表示されます。 Visual Studioでファイルを閉じると、警告は消えます。
実際、これに対する正しい答えは、そのようにスキーマをドキュメントに追加することです。
<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
この警告を取り除くには、常に '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.xsd
を共有したい場合は、Visual Studio Schemas フォルダに移動します (パスは若干異なるかもしれませんが、私の場合は D:\Program Files (x86)\Microsoft Visual Studio 10.0Xml³³Schemas
です)。そして、packages.config
ファイルの<packages>
タグを編集します(xmlns
属性を追加します)。
<packages xmlns="urn:packages">
これで、警告が消えるはずです(Visual Studioでpackages.configファイルを開いている場合でも)。
問題は、「packages.config」のxsdスキーマが必要であることです。
これがスキーマを作成する方法です(ここで見つけました):
。。
これにより、 packages.xsd
が作成され、Visual Studio:で開きます。
。。
私の場合、「packages.xsd」はこのパスの下で作成されました。
Tempフォルダーから packages.xsd
を参照したくありませんが、それをソリューションに追加してソースコントロールに追加して、他のユーザーが取得できるようにしたいと考えています。.. そこで、「packages.xsd」をコピーして、ソリューションフォルダーに貼り付けました。 次に、ファイルをソリューションに追加しました。
1。 ソリューション*と同じフォルダーに「packages.xsd」をコピーします。
2。 VSから、ソリューションを右クリックします-> ->を追加既存のアイテム。..*次に、「packages.xsd」を追加します。
。。
これで、「packages.xsd」を作成し、ソリューションに追加しました。 必要なのは、構成ファイルにこのスキーマを使用するように指示することだけです。
構成ファイルを開き、上部のメニューから次を選択します。
packages.xsd
を追加し、このスキーマを使用するを選択します(以下を参照)。
。。
これは機能し、新しいパッケージを追加した後でも残ります。
以下を追加します。 !& lt;パッケージ>の上のDOCTYPE要素:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE packages [
<!ELEMENT packages (package*)>
<!ELEMENT package EMPTY>
<!ATTLIST package
id CDATA #REQUIRED
version CDATA #REQUIRED
targetFramework CDATA #REQUIRED
developmentDependency CDATA #IMPLIED>
]>