sourcecode

nuget 'packages' 요소가 경고로 선언되지 않았습니다.

copyscript 2023. 10. 16. 22:00
반응형

nuget 'packages' 요소가 경고로 선언되지 않았습니다.

showstopper는 아니지만 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에서 파일을 닫으면 경고가 사라집니다.

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

사실 이에 대한 정답은 그저 당신의 문서에 스키마를 추가하는 것입니다.

<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>

이 파일의 위치(두 가지 옵션)

  • 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에 열려 있더라도 경고가 사라져야 합니다.

는 xsd 입니다를 입니다.packages.config.

이렇게 하면 스키마를 만들 수 있습니다(여기서 찾았습니다).

Config 파일 열기 -> XML -> 스키마 만들기

enter image description here

이것은 그들을 만들어 낼 것입니다.packages.xsd비주얼 스튜디오 에서 열 수 있습니다.

enter image description here

저 같은 경우에는.packages.xsd되었습니다

C:\Users\MyUserName\AppData\Local\템프

은 않습니다.packages.xsdTemp 폴더에서, 다른 사용자가 얻을 수 있도록 제 솔루션에 추가하고 소스 제어에 추가하고 싶습니다...그래서 따라했습니다.packages.xsd내 솔루션 폴더에 붙여넣었습니다.그런 다음 파일을 솔루션에 추가했습니다.

1. 복사packages.xsd솔루션과 동일한 폴더에

2. VS에서 솔루션 우클릭 -> 추가 -> 기존 아이템...그다음에 추가합니다.packages.xsd

enter image description here

그래서 이제 우리가 만든 것은packages.xsd솔루션에 추가했습니다.우리가 해야 할 일은 이 스키마를 사용하도록 config 파일에 알려주는 것입니다.

config 파일을 연 다음 상단 메뉴에서 다음을 선택합니다.

XML -> 스키마...

당신의 것을(를)packages.xsd, Use this schema(이 스키마 사용)를 선택합니다(아래 참조).

enter image description here

그 어떤 대답도 당신의 문제를 영구히 해결해 주지는 못할 것입니다.XSD 추가 경로(Xml 메뉴에서 "Create Schema" 선택)로 이동하면 새 패키지를 추가할 때 packages.config 파일이 정리되어 패키지 관리자와 문제가 발생합니다.

가장 좋은 해결책은 파일을 사용하지 않을 때 파일을 닫는 것으로 무시하는 것입니다.

VS가 이 파일의 스키마를 모르기 때문에 발생합니다.이 파일은 구현 세부사항에 가까우며, 일반적으로 직접 열어야 하는 파일이 아닙니다.대신 NuGet 대화 상자를 사용하여 프로젝트에 설치된 패키지를 관리할 수 있습니다.

이는 새 패키지를 추가한 후에도 작동하고 유지됩니다.

다음을 추가합니다!<packages> 요소 위의 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>
]>

이전 프로젝트 버전이 있을 때도 있습니다.이를 해결하려면 다음 단계를 따릅니다.

  1. 참조를 마우스 오른쪽 버튼으로 클릭하고 PackageReference..로 packages.config를 선택합니다.
  2. 확인을 누릅니다.
  3. 프로젝트 패키지가 업데이트되는 동안 대기

언급URL : https://stackoverflow.com/questions/6774578/nuget-packages-element-is-not-declared-warning

반응형