1. NET 코어 명령줄 인터페이스(CLI) 도구 project.json 폐기되고 .csproj 파일로 대체되었으며, 이 파일은 초기 .NET 코어에서 프로젝트 구성 파일로 사용되었project.json 마이크로소프트가 문제를 발견한 후 이를 폐기한 것으로 추정되며, MSBuild는 여전히 .net 컴파일 도구로 사용되었습니다.
MSBuild는 다음과 같이 소개합니다:https://docs.microsoft.com/zh-cn ... sbuild?view=vs-2017
VS 컴파일 및 생성을 수행할 때, VS는 MSBuild 도구를 호출하는 데 도움을 주기 때문에 .NET 프로젝트를 컴파일할 때 VS 도구를 설치할 필요가 전혀 없습니다.
.NET 코어 CLI 도구 명령어는 다음과 같습니다:
.NET 명령줄 도구 (2.1.301) 사용: dotnet [runtime-options] [path-to-application] 사용: dotnet [sdk-options] [명령어] [arguments] [command-options]
path-to-application: 애플리케이션으로 가는 경로는 실행할 파일을 .dll합니다.
SDK 명령어: new는 .NET 프로젝트를 초기화합니다. .NET 프로젝트에서 지정한 의존성을 복원합니다. .NET 프로젝트를 즉시 실행하세요. .NET 프로젝트를 구축하세요. publish는 배포용 .NET 프로젝트를 게시합니다(런타임 포함). 프로젝트에 명시된 테스트 러너를 사용하여 단위 테스트를 실행합니다. NuGet 패키지를 만들기 위해 팩을 만듭니다. project.json 기반 프로젝트를 MSBuild 기반 프로젝트로 이전하세요. 깨끗하고 깨끗한 결과물이 생성됩니다. SLN 수정 솔루션(SLN) 파일. 참고 자료에 추가하세요. 프로젝트에서 삭제하세요. 프로젝트가 참조하거나 설치하는 도구를 나열하세요. NuGet은 추가적인 NuGet 명령을 제공합니다. msbuild는 Microsoft Build Engine(MSBuild)을 실행합니다. vstest는 Microsoft Test Execution 명령줄 도구를 실행합니다. 스토어는 지정된 어셈블리를 런타임 스토어에 저장합니다. .NET 경험을 확장하는 도구를 설치하거나 사용할 수 있는 도구들입니다. 빌드 서버는 빌드 버전이 실행한 서버와 상호작용합니다. 도움은 도움입니다.
일반적인 선택지: -v|--상세함은 명령어의 세부 수준을 결정합니다. 허용되는 값은 Q[UIET], M[inimal], N[Ormal], D[etailed], diag[nostic]입니다. -그저... 도움은 도움이 된다는 뜻이죠.
dotnet 명령어를 실행하세요 --help, 명령어에 대한 더 많은 정보를 얻으세요.
sdk-options: --version은 사용 중인 .NET Core SDK 버전을 보여줍니다. --정보는 .NET Core 정보를 표시합니다. --list-sdks를 통해 설치된 SDK를 표시할 수 있습니다. --list-runtimes는 설치된 런타임을 보여줍니다. -d|--진단이 진단 출력을 가능하게 합니다.
runtime-options: --추가탐사 경로 <path> 프로브 정책과 프로브 조립을 포함하는 경로입니다. --FX-버전 버전은 <version> 애플리케이션 실행에 사용될 공유 프레임워크의 설치 버전입니다. --roll-forward-on-no-candidate-fx "No Roll Forward to Candidate Shared Framework"가 활성화되어 있습니다. --추가-deps를 <path> 다른 deps.json 파일로 가는 경로에 할당합니다.
추가 도구 ('dotnet [tool-name] --help' 참고): 개발 자격증 개발 자격증을 생성하고 관리합니다. ef Entity Framework Core 명령줄 도구. sql-cache, SQL Server 캐시, 명령줄 도구. user-secrets 개발 사용자 비밀을 관리합니다. watch, 파일이 변경될 때 명령어를 실행하는 파일 감시자를 시작하세요.
2. 컴필레이션 및 발매
배포용으로 .NET 프로젝트를 게시하세요(런타임 포함). 닷넷 퍼블리시
C:\project\dotnet\test1>dotnet publish --help 사용법: dotnet publish [옵션]
옵션: -h, --도움말이 도움말 정보를 표시합니다. -o, --output <OUTPUT_DIR> 은 게시된 항목의 출력 디렉터리를 배치하는 데 사용됩니다. -f, --프레임워크 <FRAMEWORK> 출판될 대상 프레임워크입니다. 목표 프레임워크는 프로젝트 문서에 명시되어야 합니다. -r, --runtime은 <RUNTIME_IDENTIFIER> 주어진 런타임에 대해 프로젝트를 게시합니다. 자립형 배포를 만들 때 이 기능을 활용하세요. 기본 동작은 프레임워크에 의존하는 앱을 공개하는 것입니다. -c, --구성 <CONFIGURATION> 은 프로젝트의 구성을 생성하는 데 사용됩니다. 대부분의 프로젝트에서 기본 값은 "디버그"입니다. --version-suffix <VERSION_SUFFIX> 는 프로젝트 내 $(VersionSuffix) 속성의 값을 정의합니다. --manifest <manifest.xml> 게시 단계를 통해 실행할 패키지 목록이 포함된 대상 매니페스트 파일로 가는 경로입니다. --no-build: 게시 전에 프로젝트를 빌드하지 마세요. 즉, --복원 없음을 의미합니다. --독립형 부가 애플리케이션은 .NET Core 런타임을 공개하여 대상 컴퓨터에 런타임을 설치할 필요가 없습니다. 런타임 식별자가 지정되면 기본값은 "true"로 표시됩니다. --no-restore 명령어를 실행하는 동안 암묵적 복원을 수행하지 마세요. -v, --상세함은 명령어의 세부 수준을 결정합니다. 허용되는 값은 Q[UIET], M[inimal], N[Ormal], D[etailed], diag[nostic]입니다. --no-dependencies는 이 플래그를 프로젝트 간 참조를 무시하고 루트 프로젝트만 복원하도록 설정합니다. --모든 의존성을 강제로 해결하도록 강제하는 힘으로, 마지막 복원이 성공했더라도 마찬가지입니다. 이는 project.assets.json 삭제와 동일합니다. 실행 관점에서 CLI 명령어는 매개변수를 가져와 "원본" MSBuild에 호출을 생성하여 원하는 속성과 실행할 대상 설정을 설정합니다. 이를 더 잘 설명하기 위해 다음 명령어를 참고하세요:
이 명령어는 Publish 설정을 사용하여 애플리케이션을 pub 폴더에 게시합니다. 내부적으로 이 명령은 다음과 같은 MSBuild 호출로 변환됩니다:
애플리케이션의 타겟 플랫폼을 정의하세요
csproj 파일의 섹션(앱의 대상 플랫폼을 정의하는 데 사용됨)에 태그를 만들 <PropertyGroup> <RuntimeIdentifiers> 고, 각 대상 플랫폼에 대해 런타임 식별자(RID)를 지정합니다. 세미콜론도 RID를 구분하는 데 필수적이라는 점에 유의하세요. 런타임 식별자 목록은 Runtime Identifier Catalog를 확인하세요. 예를 들어, 다음 섹션에서는 <PropertyGroup> 앱이 64비트 윈도우 10 운영체제와 64비트 OS X 버전 10.11 버전에서 실행된다고 나와 있습니다.
만약 win10 x64 플랫폼 아래에서만 배포판을 생성하고 싶다면, 다음 명령을 실행할 수 있습니다:
출력 폴더: C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish, 전체 폴더는 66M로 구성되어 있어 꽤 큽니다. 아래 그림에서 볼 수 있습니다:
centos.7-x64 플랫폼에서 릴리스 패키지를 생성하세요. 7만 개가 있는데 꽤 큽니다. Centos 7에서 실행하기 위해 퍼블리싱해 봅시다 (.NET Core SDK는 CentOS 7 시스템에는 설치되지 않습니다)。
시스템 정보는 다음과 같습니다:
[root@master ~]# 우나메 -아 Linux master 3.10.0-862.el7.x86_64 #1 SMP 2018년 4월 20일 금요일 16:44:24 UTC x86_64 x86_64 x86_64 GNU/Linux [root@master ~]# 고양이 /etc/레드햇 릴리스 CentOS 리눅스 릴리스 7.6.1810 (코어) 파일을 임시 디렉터리에 업로드한 후 test1 파일을 실행하려고 시도하는데, 이 파일은 다음과 같이 정상적으로 출력됩니다:
[root@master ~]# mkdir 임시 [root@master ~]# CD 템포/ [root@master temp]# ./test1 -bash: ./test1: 권한이 부족하다 [root@master 임시]# CD .. [root@master ~]# chmod -R 777 temp/ [root@master ~]# CD 템포/ [root@master temp]# ./test1 전 세계 여러분 안녕하세요! [root@master 온도]# 에코 "http://www.itsvse.com"
http://www.itsvse.com [root@master 온도] #
3、. NET 코어 실행 식별자
.NET 코어 RID는 Runtime Identifier의 약자입니다. RID 값은 애플리케이션이 실행되는 대상 플랫폼을 식별하는 데 사용됩니다. .NET 패키지는 이를 NuGet 패키지에서 플랫폼별 자산을 표현하는 데 사용합니다. 다음 값들은 RID의 예시입니다: linux-x64, ubuntu.14.04-x64, win7-x64, 또는 osx.10.12-x64. 네이티브 의존성이 있는 패키지의 경우, RID는 패키지를 복원할 수 있는 플랫폼을 지정합니다.
<RuntimeIdentifier> 프로젝트 파일의 요소에서 RID를 설정할 수 있습니다. 여러 RID는 <RuntimeIdentifiers> 프로젝트 파일의 요소 내에서 세미콜론으로 구분된 리스트로 정의할 수 있습니다.
특정 운영체제를 나타내는 RID는 일반적으로 다음과 같은 패턴을 따릅니다: [os]. [버전]-[아키텍처]-[추가 수식어], 여기서 :
- [os]는 운영체제/플랫폼 시스템 이름입니다. 예를 들어, 우분투.
- [버전]은 점(.)으로 표시된 OS 버전입니다. 예를 들어, 15.10. 버전은 일반적으로 서로 다른 플랫폼 API 주변기기를 가진 여러 개별 운영체제 버전을 나타내므로, 마케팅용 릴리스가 되어서는 안 됩니다.
- [아키텍처]는 프로세서 아키텍처입니다. 예를 들어: x86, x64, arm, 또는 arm64 등이 있습니다.
- [추가 수식어] 플랫폼 간 구분을 더욱 강화합니다. 예를 들어 AOT나 Corert 같은 게임들이요.
구체적인 소개:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog
4、. NET Core는 NuGet 패키지를 생성합니다
.NET Standard와 .NET Core의 경우, 모든 라이브러리는 NuGet 패키지로 배포되어야 합니다. 사실, 모든 .NET 표준 라이브러리는 이렇게 공개되고 사용됩니다. 이는 dotnet pack 명령어를 사용하면 쉽게 달성할 수 있습니다.
(끝)
|