1. Інструмент інтерфейсу командного рядка NET Core (CLI) Виключив 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 [налаштування під час виконання] [шлях до додатка] Використання: dotnet [sdk-options] [command] [аргументи] [command-options]
path-to-application: Шлях до додатку .dll файл, який потрібно виконати.
Команди SDK: new ініціалізує проєкт .NET. відновити залежності, визначені в проєкті .NET. негайно запустити і виконати .NET-проєкт. проєкт build .NET. Publish публікує .NET-проєкт для розгортання (включно з процесом виконання). Тест виконує модульні тести за допомогою тестового раннера, зазначеного в проєкті. 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 Core. --list-sdks для відображення встановленого SDK. --list-runtime показує встановлений час виконання. -d|--діагностика дозволяє діагностичний вихід.
runtime-options: --додатковий шлях <path> зондування Шлях, що містить політику зонду та збірку для зондування. --<version>fx-версія встановленої версії спільного фреймворку для запуску додатку. --roll-forward-on-no-candidate-fx «No Roll Forward to Candidate Shared Framework увімкнено». --additional-deps <path> до шляху до інших deps.json файлів.
Додаткові інструменти ('dotnet [ім'я інструменту] --help' для детальнішої інформації): dev-certs Створюйте та керуйте сертифікатами розробки. ef Entity Framework Основні командні інструменти. Командні інструменти SQL Cache SQL Server для командного рядка. User-secrets Керуйте розробкою user secrets. watch Запусти file watcher, який виконує команду при зміні файлів.
2. Збірка та реліз
Опублікуйте .NET-проєкт для розгортання (включно з процесом виконання). Публікація dotnet
C:\project\dotnet\test1>dotnet publish --help Використання: dotnet publish [опції]
Варіанти: -Г, --допомога показує інформацію про допомогу. -o, --output <OUTPUT_DIR> використовується для розміщення каталогу вихідних даних опублікованого елемента. -f, --<FRAMEWORK>фреймворк Цільова рамка, що буде опублікована. Цільовий фреймворк має бути вказаний у проєктному документі. -r, --<RUNTIME_IDENTIFIER>runtime publish проєкт для заданого часу виконання. Використовуйте це при створенні автономних розгортів. За замовчуванням є публікація додатку, який залежить від фреймворку. -c, ---конфігурація <CONFIGURATION> використовується для генерації конфігурації проєкту. Значення за замовчуванням для більшості проєктів — «Debug». --version-суфікс <VERSION_SUFFIX> визначає значення властивості $(VersionSuffix) у вашому проєкті. --manifest <manifest.xml> Шлях до цільового файлу маніфесту, що містить список пакетів, які потрібно виконати на етапі публікації. --ні-будуй не будуй проєкт до публікації. Означає --відновлення. --автономні супровідні додатки публікують виконання .NET Core, усуваючи потребу встановлювати гру на цільовій машині. Якщо вказано ідентифікатор виконання виконання, він за замовчуванням стає «true». --no-restore Не виконуйте імпліцитне відновлення під час виконання команди. -v, --багатослівність визначає рівень деталізації команди. Дозволені значення: Q[UIET], M[inimal], N[Ormal], D[etailed] та diag[nostic]. --no-dependencies встановлює цей прапорець ігнорувати посилання між проєктами і відновлювати лише кореневий проєкт. --сила змусити всі залежності бути розв'язані, навіть якщо останнє відновлення було успішним. Це еквівалентно видаленню project.assets.json. З точки зору виконання, команди CLI беруть свої параметри і створюють виклик «оригінальної» MSBuild для встановлення бажаних властивостей і бажаної цілі для виконання. Щоб краще проілюструвати це, зверніться до наступної команди:
Ця команда публікує додаток у папку pub за допомогою конфігурації Publish (Публікація). Внутрішньо ця команда перетворюється на наступний виклик MSBuild:
Визначте цільову платформу для вашого додатку
Створіть тег у розділі файлу csproj (який використовується для визначення цільової платформи вашого <PropertyGroup> <RuntimeIdentifiers> додатку), а потім вкажіть ідентифікатор виконання (RID) для кожної цільової платформи. Зверніть увагу, що для розділення RID також потрібні крапки з комою. Перевірте каталог ідентифікаторів виконання для списку ідентифікаторів виконання. Наприклад, наступний <PropertyGroup> розділ вказує, що додаток працює на 64-бітній операційній системі Windows 10 та 64-бітній версії OS X версії 10.11.
Якщо ми хочемо згенерувати розподіл лише нижче платформи win10 x64, можна виконати таку команду:
Вихідна папка: C:\project\dotnet\test1\bin\release\netcoreapp2.1\win10-x64\publish, вся папка має 66M, що досить велике, як показано на рисунку нижче:
Згенеруйте пакет випуску на платформі 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/ [root@master temp]# ./test1 -bash: ./test1: Недостатньо дозволів [root@master temp]# cd .. [root@master ~]# chmod -R 777 temp/ [root@master ~]# температура CD/ [root@master temp]# ./test1 Привіт, народ! [root@master temp]# відлуння «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.
(Кінець)
|