.NET CORE 사용 시작

13210 단어 .netcore
이 블 로 그 는.net core 를 사용 하여 간단 한 프로젝트 를 만 듭 니 다.라 이브 러 리 프로젝트,라 이브 러 리 프로젝트 의 테스트 항목 과 라 이브 러 리 프로젝트 를 사용 한 콘 솔 프로젝트 를 포함 하고 여러 항목 의 모드 에서 코드 를 디 버 깅 하 는 방법 을 보 여 줍 니 다.제 본 기 계 는 mac 이 고 개발 환경 은 VS Code 입 니 다..net core 는 크로스 플랫폼 이기 때문에 windows 아래 VS CODE 를 사용 하 는 것 도 가능 할 것 입 니 다.
준비 하 다.
개발 환경의 준비 작업 은 참고 하 시기 바 랍 니 다.https://www.microsoft.com/net/core。
우선,이 솔 루 션 의 루트 디 렉 터 리 로 Golden 이라는 폴 더 를 새로 만 든 다음,src 와 test 두 개의 폴 더 를 새로 만 든 다음,src 아래 에 각각 app 과 library 두 개의 폴 더 를 새로 만 든 다음,test 폴 더 아래 에 test-library 라 는 폴 더 를 새로 만 듭 니 다.루트 디 렉 터 리(golden)로 돌아 가 globle.json 파일 을 새 솔 루 션 파일 로 만 듭 니 다..net framework 프로젝트 의.sln 파일 과 같은 내용 을 입력 하 십시오.
{
    "projects": [
        "src",
        "test"
    ]
}

결국 디 렉 터 리 의 계층 구 조 는 이렇다.
/golden
|__global.json
|__/src
   |__/app
   |__/library
|__/test
   |__/test-library

라 이브 러 리 작성
다음은 library 라 는 라 이브 러 리 프로젝트 를 만 듭 니 다.명령 행 도 구 를golden/src/library로 찾 은 다음 입력dotnet new -t lib하 십시오.이 명령 은 procject.json 과 Library.cs 두 파일 을 포함 하 는 라 이브 러 리 항목 을 만 들 었 습 니 다.프로젝트 에 다른 구성 요소(예 를 들 어 Newtonsoft.JSon)가 필요 하 다 면 procject.json 에 Newtonsoft.JSon 에 대한 인용 을 추가 합 니 다.수 정 된 procject.json 파일 은 대개 이 렇 습 니 다.
{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable"
  },
  "dependencies": {},
  "frameworks": {
    "netstandard1.6": {
      "dependencies": {
        "NETStandard.Library": "1.6.0",
        "Newtonsoft.Json": "9.0.1-beta1"
      }
    }
  }
}

이것 은dotnet restore명령 을 실행 하여 구성 요 소 를 로 컬 에 다운로드 하고 procject.lock.json 파일 을 생 성 합 니 다.다음은 Library.cs 를 삭제 하고 Thing.cs 를 새로 만 듭 니 다.코드 는 다음 과 같 습 니 다.
using System;

namespace Library
{
    public class Thing
    {
        public int Get(int left, int right){
            return left + right;
        }
    }
}

이 예 에서 우 리 는 Newtonsoft.JSon 구성 요 소 를 사용 하지 않 았 습 니 다...dotnet build명령 을 입력 하여 구성 요 소 를 컴 파일 합 니 다.완료 되면golden/src/library/bin/Debug/netstandard1.6디 렉 터 리 아래 library.dll 파일 을 생 성 합 니 다.라 이브 러 리 프로젝트 작성 완료.
테스트 항목 작성
test/test-library 에서 명령 을 실행 합 니 다dotnet new -t xunittest.xunit.net 은.net 플랫폼 을 대상 으로 하 는 비교적 주류 적 인 오픈 소스 유닛 테스트 프레임 워 크 입 니 다.이 단원 테스트 항목 은 library 프로젝트 를 위 한 단원 테스트 항목 이기 때문에 library 프로젝트 를 먼저 참조 해 야 합 니 다.또한 library 프로젝트 가 현재 솔 루 션 에 있 기 때문에 NuGet 에서 가 져 오지 않 고 현재 솔 루 션 에서 가 져 옵 니 다.수 정 된 procject.json 파일 은 다음 과 같 습 니 다.
{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable"
  },
  "dependencies": {
    "System.Runtime.Serialization.Primitives": "4.1.1",
    "xunit": "2.1.0",
    "dotnet-test-xunit": "1.0.0-rc2-192208-24",
    "library": {
      "target": "project"
    }
  },
  "testRunner": "xunit",
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0" }
      },
      "imports": [
        "dotnet5.4",
        "portable-net451+win8"
      ]
    }
  }
}

그 중에서"library": {"target": "project"}은 library 구성 요소 가 현재 솔 루 션 에서 가 져 오고 NuGet 에서 가 져 오지 않 는 다 는 뜻 이다.그리고 기본적으로 생 성 된 Test.cs 파일 을 삭제 하고 Library Tests.cs 파일 을 새로 만 듭 니 다.코드 는 다음 과 같 습 니 다.
using Xunit;
using Library;

namespace Tests
{
     public class LibraryTests
    {
        [Fact]
        public void TestThing() {
            Assert.Equal(42, new Thing().Get(19, 23));
        }
    }
}

다음은 필요 한 구성 요 소 를 다운로드 하기 위해dotnet restore컴 파일 코드 를 실행 하고dotnet build테스트 코드 를 실행 합 니 다.만약 순조롭다 면 테스트 의 출력 결 과 는 대체로 다음 과 같다.
xUnit.net .NET CLI test runner (64-bit osx.10.11-x64)                                                                                   
  Discovering: test-library                                                                                                             
  Discovered:  test-library                                                                                                             
  Starting:    test-library                                                                                                             
  Finished:    test-library                                                                                                             
=== TEST EXECUTION SUMMARY ===                                                                                                          
   test-library  Total: 1, Errors: 0, Failed: 0, Skipped: 0, Time: 0.211s                                                               
SUMMARY: Total: 1 targets, Passed: 1, Failed: 0.            

콘 솔 프로젝트 작성
Golden/src/app 에서 실행dotnet test.이 명령 은 하나의 콘 솔 프로젝트 를 만 들 었 습 니 다.프로그램.cs 와 procject.json 두 파일 을 포함 합 니 다.현재 솔 루 션 의 library 라 이브 러 리 항목 을 참조 해 야 하기 때문에 dependencies 에서 library 프로젝트 에 대한 인용 을 추가 해 야 합 니 다.수 정 된 procject.json 은 대체적으로 다음 과 같 습 니 다.
{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable"
  },
  "dependencies": {},
  "frameworks": {
    "netstandard1.6": {
      "dependencies": {
        "NETStandard.Library": "1.6.0",
        "Newtonsoft.Json": "9.0.1-beta1"
      }
    }
  }
}

그리고 Program.cs 코드 를
using System;
using Library;

namespace ConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Thing thing=new Thing();
            int number = thing.Get(19,24);
            Console.WriteLine($"The answer is {number}");
        }
    }
}

실행dotnet new명령 이 잘 되면 출력dotnet run하여 우리 의 프로젝트 가 완성 되 었 음 을 설명 합 니 다.
VS Code 에서 디 버 깅 코드
단일 항목 의 경우 디 버 깅 코드 는 자 연 스 러 운 일 입 니 다.VisualStudio 와 마찬가지 입 니 다.하지만 현재 우리 의 솔 루 션 에는 여러 항목 이 포함 되 어 있 습 니 다.우 리 는 VS Code 가 디 버 깅 할 수 없다 는 것 을 알 게 될 것 입 니 다.설정 을 알려 줄 것 입 니 다.VSCode 는 기본적으로.vscode 폴 더 에 두 개의 파일 launch.json 과 tasks.json 을 생 성 합 니 다.
tasks.json 폴 더 에 option 속성The answer is 43을 추가 해 야 합 니 다.수 정 된 tasks.json 파일 은 이와 같 습 니 다.
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "dotnet",
    "isShellCommand": true,
    "args": [],
    "tasks": [
        {
            "taskName": "build",
            "args": [ ],
            "isBuildCommand": true,
            "showOutput": "silent",
            "problemMatcher": "$msCompile"
        }
    ],
    "options": {
        "cwd": "${workspaceRoot}/src/app"
    }
}

launch.json 에서 program 속성 을 수정 해 야 하 는 주 소 는 원래"options": {"cwd": "${workspaceRoot}/src/app"}에서"program": "${workspaceRoot}/bin/Debug//",로 변경 되 었 습 니 다.이것 은 우리 콘 솔 프로젝트 가 출력 한 dll 파일 입 니 다.이제 디 버 깅 할 수 있어!
이것 은 끝까지 강요 하 니 원문의 링크 를 주세요.https://docs.microsoft.com/zh-cn/dotnet/articles/core/tutorials/using-on-macos

좋은 웹페이지 즐겨찾기