Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 23453|Отговор: 0

[.NET Core] [Въведение в DotNet (2)]. Компилация и издаване на NET Core

[Копирай линк]
Публикувано в 21.01.2019 г. 17:10:26 ч. | | | |
1. Инструмент за команден ред (CLI) на NET Core
Прекрати project.json и го замени с .csproj файл, който project.json се използваше като конфигурационен файл на проекта в ранното .NET ядро, и се смята, че Microsoft го е прекратила след откриване на някои проблеми, а MSBuild все още се използваше като инструмент за компилация на .NET.

MSBuild представя:https://docs.microsoft.com/zh-cn ... sbuild?view=vs-2017

Когато извършваме компилация и генериране на VS, VS просто ни помага да извикаме инструмента MSBuild, което означава, че когато компилираме .NET проекта, изобщо не е нужно да инсталираме инструмента VS.

Командата на инструмента .NET Core CLI е следната:

.NET инструменти за команден ред (2.1.301)
Използване: dotnet [runtime-options] [път към приложението]
Употреба: dotnet [sdk-options] [команда] [аргументи] [command-options]

path-to-application:
  Пътят към приложението .dll файл, който трябва да бъде изпълнен.

SDK команди:
  new инициализира .NET проекта.
  възстановете зависимостите, посочени в .NET проекта.
  Стартирайте и изпълнете .NET проекта веднага.
  build .NET проект.
  Publish публикува .NET проект за внедряване (включително runtime).
  Тестът изпълнява unit тестове с помощта на тестовия рънър, зададен в проекта.
  pack, за да създаде NuGet пакет.
  мигриране на проекти, базирани на project.json, към проекти, базирани на MSBuild.
  Чист, чист генериран изход.
  SLN Modification Solution (SLN) файл.
  Добавете към референцията.
  Премахни от проекта.
  Избройте инструментите, към които проектът се позовава или инсталира.
  NuGet предоставя допълнителни NuGet команди.
  msbuild работи с Microsoft Build Engine (MSBuild).
  vstest стартира командния инструмент Microsoft Test Execution.
  Store съхранява зададения асемблер в хранилището по време на изпълнение.
  инструмент за инсталиране или използване на инструменти, които разширяват .NET изживяването.
  Build-server взаимодейства със сървъра, който се стартира от версията на билд.
  Помощта показва помощ.

Чести опции:
  -v|---многословността определя нивото на детайлност на командата. Позволените стойности са Q[UIET], M[inimal], N[Ormal], D[etailed] и diag[nostic].
  -х|--помощта показва помощ.

Изпълни dotnet командата --help, за да получиш повече информация за командата.

sdk-options:
  --версията показва версията на .NET Core SDK, която се използва.
  --info показва информация за .NET ядрото.
  --list-sdks за показване на инсталирания SDK.
  --list-runtime показва инсталираното време на изпълнение.
  -d|--диагностика позволява диагностичен изход.

runtime-options:
  --extraalprobingpath <path> Пътят, съдържащ сондиращата политика и сглобката към сонда.
  --<version>fx-версия на инсталираната версия на споделената рамка, която да се използва за изпълнение на приложението.
  --roll-forward-on-no-candidate-fx "No roll forward to Candidate Shared Framework е активиран.
  --допълнителен deps <path> към пътя към други deps.json файлове.

Допълнителни инструменти ('dotnet [tool-name] --help' за повече информация):
  dev-certs Създаване и управление на сертификати за разработка.
  ef Entity Framework Основни командни инструменти.
  SQL Cache SQL Server командни инструменти за команден ред.
  потребителски тайни Управление на разработката на потребителски тайни.
  watch Стартирайте файлов watcher, който изпълнява команда, когато файловете се променят.

2. Компилация и издаване


Публикувайте .NET проект за внедряване (включително runtime).
Dotnet Publish


C:\project\dotnet\test1>dotnet publish --help
Употреба: dotnet публикуване [опции]

Опции:
  -Х, --помощ показва информация за помощ.
  -o, ---<OUTPUT_DIR>изходът се използва за поставяне на изходната директория на публикувания елемент.
  -f, --framework <FRAMEWORK> Целевата рамка, която ще бъде публикувана. Целевата рамка трябва да бъде посочена в проектния документ.
  -r, --<RUNTIME_IDENTIFIER>runtime публикувай проекта за дадено време на изпълнение. Използвайте това при създаване на самостоятелни разгръщания. По подразбиране е да публикуваш приложение, което зависи от рамката.
  -c, --<CONFIGURATION>конфигурацията се използва за генериране на конфигурацията на проекта. Стандартната стойност за повечето проекти е "Debug".
  --version-suffix <VERSION_SUFFIX> определя стойността на свойството $(VersionSuffix) във вашия проект.
  --manifest <manifest.xml> Път към целевия файл на манифеста, съдържащ списък с пакети, които трябва да бъдат изпълнени чрез стъпката за публикуване.
  --не-изграждане, не изграждайте проекта преди публикуване. Означава --без възстановяване.
  --самостоятелните придружаващи приложения публикуват .NET Core runtime, елиминирайки нуждата от инсталиране на runtime на целевата машина. Ако е зададен идентификатор по време на изпълнение, той по подразбиране се поставя на "true".
  --no-restore Не извършвайте имплицитно възстановяване по време на изпълнение на командата.
  -v, --многословността задава нивото на детайлност на командата. Позволените стойности са Q[UIET], M[inimal], N[Ormal], D[etailed] и diag[nostic].
  --no-dependencies задава този флаг да игнорира препратките между проект и да възстановява само коренния проект.
  --сила да принуди всички зависимости да бъдат разрешени, дори ако последното възстановяване е било успешно. Това е еквивалентно на изтриване на project.assets.json.
От гледна точка на изпълнението, CLI командите взимат техните параметри и конструират повикване към "оригиналния" MSBuild, за да зададат желаните свойства и желаната цел за изпълнение. За по-добра илюстрация на това, вижте следната команда:


Тази команда публикува приложението в папката pub чрез конфигурацията Публикуване. Вътрешно тази команда се превежда в следния MSBuild вик:
Определете целевата платформа за вашето приложение


Създайте таг в секцията на csproj файла (който се използва за определяне на целевата платформа за вашето приложение <PropertyGroup> <RuntimeIdentifiers> ) и след това посочете идентификатора на изпълнение (RID) за всяка целева платформа. Имайте предвид, че точки и запетая са необходими за разделяне на RID. Проверете каталога на идентификаторите по време на изпълнение за списък с идентификатори по време на изпълнение.
Например, следният <PropertyGroup> раздел показва, че приложението работи на 64-битова операционна система Windows 10 и 64-битова версия 10.11 на операционната система OS X.


Ако искаме да генерираме дистрибуция само под платформата win10 x64, можем да изпълним следната команда:

Изходна папка: C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish, цялата папка има 66M, което е доста голямо, както е показано на фигурата по-долу:



Генерирай release package под платформата centos.7-x64, има 70M, което също е доста голямо, нека опитаме да го публикуваме на centos 7, за да го изпълним (.NET Core SDK не е инсталиран на CentOS 7 системи)。

Информацията за системата е следната:

[root@master ~]# uname -a
Linux master 3.10.0-862.el7.x86_64 #1 SMP Пет 20 април 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@master ~]# котка /etc/redhat-release
CentOS Linux версия 7.6.1810 (Core)
Качваме файла в временната директория и се опитваме да изпълним файла test1, който може да се изведе нормално, както следва:

[root@master ~]# mkdir temp
[root@master ~]# CD temp/
[root@master temp]# ./test1
-bash: ./test1: Недостатъчно разрешения
[root@master temp]# CD ..
[root@master ~]# chmod -R 777 temp/
[root@master ~]# CD temp/
[root@master temp]# ./test1
Здравей, свят!
[root@master температура]# ехото "http://www.itsvse.com"
http://www.itsvse.com
[root@master температура] #


3、. Идентификатор за изпълнение на NET Core

.NET Core RID, 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] е името на операционната система/платформата. Например, Ubuntu.
  • [версия] е версията за операционната система, която е форматирана с точка (.) номер на версията. Например, 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.



(Край)




Предишен:Видео урок за Националния изпит за държавна служба 2019
Следващ:Visual Studio 2017 добавя MSDN
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com