Visual Studio 16.6의 DotNet Core 3.1 프로젝트로 콘텐츠 전용 패키지 가져 오기

GKalnytskyi

서로 다른 프로젝트간에 JSON 스키마를 공유하기 위해 콘텐츠 전용 패키지를 정의하고 만들었습니다. 을 사용하여 패키지화했으며 nuget.exe.Net Framework 4.6 라이브러리 프로젝트에 성공적으로 추가 할 수있었습니다.

하지만 DotNet Core 3.1 라이브러리 프로젝트 (NUnit 테스트)에 추가하려고 할 때 다음 오류가 발생했습니다.

NU1212 Invalid project-package combination for <package name>. DotnetToolReference project style can only contain references of the DotnetTool type

Nuget 지원 문서 ( 패키지 유형 , 콘텐츠 파일 )에는 콘텐츠 전용 패키지에 대한 제한 사항 ( "호환된다고 가정하는"것 이상)이 나열되어 있지 않습니다. 질문은 DotNet Core 3.1 라이브러리 호환 콘텐츠 전용 Nuget 패키지를 어떻게 생성합니까?

이 질문 에서 제안한 것처럼 로컬 데이터 소스를 제외한 모든 데이터 소스를 비활성화하려고 시도했지만 아무런 차이가 없습니다.

다음은 .nuspec파일 내용입니다.

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>Package.JsonSchemas</id>
        <version>0.0.1</version>
        <packageTypes>
            <packageType name="Dependency" />
        </packageTypes>
        <authors>me</authors>
        <owners>me</owners>
        <releaseNotes>Fill in later</releaseNotes>
        <description>Set of JSON schemas.</description>
        <tags>json, json-schema, tdv</tags>
        <contentFiles>
            <files include="JsonSchemas\*.json" buildAction="Content" copyToOutput="true" flatten="false" />
        </contentFiles>
    </metadata>

    <files>
        <file src="JsonSchemas\*.*" target="content\JsonSchemas" />
    </files>
</package>

스키마 예 :

{
  "$schema": "https://json-schema.org/draft/2019-09/schema",

  "$defs": {
    "ArrayItem": {
      "type": "object"
    }
  },

  "title": "dataset object",
  "type": "object",

  "properties": {
    "Data": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ArrayItem"
      },
      "default": []
    }
  },
  "required": [ "Data" ]
}
그 남자

NU1212오류에 지점을하지 dotnet tool install, 직접 패키지에 의해 야기 될 것 같지 않습니다. NuGet 패키지 관리자 또는 콘솔을 통해 패키지를 올바르게 추가하고 있습니까? .NET Core 3.1 라이브러리 또는 NUnit 프로젝트 유형에서는 재현 할 수 없습니다.

@Perry Qian-MSFT가 제안했듯이, 특히 NuSpec에서 패키지 버전을 변경하지 않은 경우 새 패키지를 추가하기 전에 항상 이전 NuGet 패키지가 완전히 제거되었는지 확인해야합니다. 캐시 된 이전 패키지가 대신 사용되는 것은 일반적인 문제입니다. 모든 NuGet 패키지 캐시지우 려면 다음 명령 중 하나를 사용하십시오.

  • 에서 dotnet.exe사용locals --clear all
  • 에서 nuget.exe사용locals -clear all
  • Visual Studio> = 2017에서 도구 > NuGet 패키지 관리자 > 패키지 관리자 설정으로 이동 하고 모든 NuGet 캐시 지우기를 클릭 합니다.

질문은 DotNet Core 3.1 라이브러리 호환 콘텐츠 전용 Nuget 패키지를 어떻게 생성합니까?

NuGet 4.0와 PackageReference용도는 contentFiles이 참조 참조 .

콘텐츠 파일은 요소를 사용하여 패키지에 포함되며 대상 속성에 콘텐츠 폴더를 지정합니다. 그러나 패키지가 대신 요소를 사용하는 PackageReference를 사용하여 프로젝트에 설치된 경우 이러한 파일은 무시 됩니다 .

content호환성을 위해 파일을 디렉토리에 계속 복사 할 수 있지만 contentFiles디렉토리에도 복사해야합니다 . 아래에 있는지 확인해야합니다 contentFiles\any\any\. 그렇지 않으면 대상 프레임 워크가있는 프로젝트로 추출되지 않습니다.

<file src="JsonSchemas\*.*" target="contentFiles\any\any\JsonSchemas" />

패키지 내의 경로는 아래에 제공되므로 첫 번째 경로 세그먼트는 코드 언어를 나타내고 두 번째는 대상 프레임 워크 모니 커를 나타냅니다. 당신은 anyboh 케이스에서 사용해야 합니다.

/contentFiles/{codeLanguage}/{TxM}

아래는 contentFiles.NET Core 3.1에서도 작동하는 NuSpec 샘플 입니다.

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>Package.JsonSchemas</id>
        <version>0.0.1</version>
        <authors>me</authors>
        <owners>me</owners>
        <releaseNotes>Fill in later</releaseNotes>
        <description>Set of JSON schemas.</description>
        <tags>json, json-schema, tdv</tags>
        <contentFiles>
            <files include="any\any\JsonSchemas\*.json" buildAction="Content" copyToOutput="true" flatten="false" />
        </contentFiles>
    </metadata>
    <files>
        <file src="JsonSchemas\*.*" target="content\JsonSchemas" />
        <file src="JsonSchemas\*.*" target="contentFiles\any\any\JsonSchemas" />
    </files>
</package>

링크 한 동일한 소스 에서 이전 버전과의 호환성을 위해 종속성 유형을 명시 적으로 지정하지 않는 것이 좋습니다. 따라서 생략했습니다.

패키지 유형은 .nuspec 파일에서 설정됩니다. 이전 버전과의 호환성을 위해서는 종속성 형식을 명시 적으로 설정 하지 않고 형식이 지정되지 않은 경우이 형식을 가정하여 NuGet에 의존하는 것이 가장 좋습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

.NET Core의 콘텐츠 전용 프로젝트

분류에서Dev

dotnet Core-내 프로젝트에서 streamreader 용 csv 파일의 올바른 위치 가져 오기

분류에서Dev

JS로드 후 페이지의 HTML 콘텐츠 가져 오기

분류에서Dev

JS로드 후 페이지의 HTML 콘텐츠 가져 오기

분류에서Dev

DELPHI로 웹 페이지의 콘텐츠 가져 오기

분류에서Dev

Visual Studio의 MSBuild-콘텐츠로 포함하기 전에 파일 이동 (C #)

분류에서Dev

Visual Studio의 ItemAdded 이벤트 : 항목 및 프로젝트 가져 오기

분류에서Dev

Visual Studio 2013+ DB 프로젝트-부분 스키마 / 부분 DB 프로젝트 가져 오기

분류에서Dev

Java의 AWS S3 이미지에서 콘텐츠 유형 가져 오기

분류에서Dev

Visual Studio 확장은 프로젝트 경로 가져 오기

분류에서Dev

3 가지 유형의 프로젝트를 포함하는 Visual Studio 템플릿 만들기

분류에서Dev

프로젝트의 사용자 지정 참조 가져 오기

분류에서Dev

dotnet 팩 출력 및 Visual Studio의 로컬 패키지 소스

분류에서Dev

WebStorm Dart 프로젝트-샘플 콘텐츠 생성 2 개의 샘플 가져 오기

분류에서Dev

Visual Studio 2012 패키지 프로젝트를 사용한 MsBuild

분류에서Dev

사용자 지정 텍스트간에 콘텐츠 가져 오기

분류에서Dev

한 프로젝트에서 Packages.config의 콘텐츠를 사용하여 새 프로젝트에서 Nuget 패키지로드

분류에서Dev

JQuery를 사용하여 <h3> 콘텐츠 가져 오기

분류에서Dev

Powershell의 Visual Studio 패키지 관리자 콘솔에서 선택한 기본 프로젝트를 어떻게 확인합니까?

분류에서Dev

전체 콘텐츠를로드하지 않고 요청의 응답 유형을 가져 오는 방법

분류에서Dev

JSOUP로 상위 div의 내부 콘텐츠 가져 오기

분류에서Dev

PHP로 다른 페이지에서 콘텐츠 가져 오기

분류에서Dev

기존 typescript 프로젝트를 Visual Studio 2013으로 가져 오기

분류에서Dev

python3의 특정 경로에 패키지 가져 오기

분류에서Dev

웹 페이지 콘텐츠 가져 오기 (json 배열 사용)

분류에서Dev

Java의 URL에서 페이지 콘텐츠 가져 오기

분류에서Dev

Java의 URL에서 페이지 콘텐츠 가져 오기

분류에서Dev

페이지 콘텐츠의 높이 가져 오기

분류에서Dev

PHP 다른 PHP 페이지의 콘텐츠 가져 오기

Related 관련 기사

  1. 1

    .NET Core의 콘텐츠 전용 프로젝트

  2. 2

    dotnet Core-내 프로젝트에서 streamreader 용 csv 파일의 올바른 위치 가져 오기

  3. 3

    JS로드 후 페이지의 HTML 콘텐츠 가져 오기

  4. 4

    JS로드 후 페이지의 HTML 콘텐츠 가져 오기

  5. 5

    DELPHI로 웹 페이지의 콘텐츠 가져 오기

  6. 6

    Visual Studio의 MSBuild-콘텐츠로 포함하기 전에 파일 이동 (C #)

  7. 7

    Visual Studio의 ItemAdded 이벤트 : 항목 및 프로젝트 가져 오기

  8. 8

    Visual Studio 2013+ DB 프로젝트-부분 스키마 / 부분 DB 프로젝트 가져 오기

  9. 9

    Java의 AWS S3 이미지에서 콘텐츠 유형 가져 오기

  10. 10

    Visual Studio 확장은 프로젝트 경로 가져 오기

  11. 11

    3 가지 유형의 프로젝트를 포함하는 Visual Studio 템플릿 만들기

  12. 12

    프로젝트의 사용자 지정 참조 가져 오기

  13. 13

    dotnet 팩 출력 및 Visual Studio의 로컬 패키지 소스

  14. 14

    WebStorm Dart 프로젝트-샘플 콘텐츠 생성 2 개의 샘플 가져 오기

  15. 15

    Visual Studio 2012 패키지 프로젝트를 사용한 MsBuild

  16. 16

    사용자 지정 텍스트간에 콘텐츠 가져 오기

  17. 17

    한 프로젝트에서 Packages.config의 콘텐츠를 사용하여 새 프로젝트에서 Nuget 패키지로드

  18. 18

    JQuery를 사용하여 <h3> 콘텐츠 가져 오기

  19. 19

    Powershell의 Visual Studio 패키지 관리자 콘솔에서 선택한 기본 프로젝트를 어떻게 확인합니까?

  20. 20

    전체 콘텐츠를로드하지 않고 요청의 응답 유형을 가져 오는 방법

  21. 21

    JSOUP로 상위 div의 내부 콘텐츠 가져 오기

  22. 22

    PHP로 다른 페이지에서 콘텐츠 가져 오기

  23. 23

    기존 typescript 프로젝트를 Visual Studio 2013으로 가져 오기

  24. 24

    python3의 특정 경로에 패키지 가져 오기

  25. 25

    웹 페이지 콘텐츠 가져 오기 (json 배열 사용)

  26. 26

    Java의 URL에서 페이지 콘텐츠 가져 오기

  27. 27

    Java의 URL에서 페이지 콘텐츠 가져 오기

  28. 28

    페이지 콘텐츠의 높이 가져 오기

  29. 29

    PHP 다른 PHP 페이지의 콘텐츠 가져 오기

뜨겁다태그

보관