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 [настройки runtime] [путь к приложению] Использование: dotnet [sdk-options] [команда] [аргументы] [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. Хранилище хранит указанную сборку в хранилище во время выполнения. инструмент для установки или использования инструментов, расширяющих опыт работы с .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-runtimes показывает установленное время выполнения. -d|--диагностика позволяет диагностический вывод.
runtime-options: --extraalproingpath <path> Путь, содержащий политику зонда и сборку для зонда. --<version>fx-версия установленной версии общего фреймворка для запуска приложения. --roll-forward-on-no-candidate-fx «No Roll Forward to Candidate Shared Framework включена». --дополнительно-deps <path> к пути к другим deps.json файлам.
Дополнительные инструменты ('dotnet [имя инструмента] — помощь' для дополнительной информации): dev-certs Создайте и управляйте сертификатами разработки. ef Entity Framework Основные командные инструменты. Командные инструменты SQL Cache SQL Server для командной строки. пользовательские секреты Управление разработкой пользовательских секретов. 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 публикуйте проект для заданного времени выполнения. Используйте это при создании автономных развертываний. По умолчанию публиковать приложение, зависящее от фреймворка. -c, --<CONFIGURATION>конфигурация используется для генерации конфигурации проекта. Значение по умолчанию для большинства проектов — «Отладка». --version-suffix <VERSION_SUFFIX> определяет значение свойства $(VersionSuffix) в вашем проекте. --manifest <manifest.xml> Путь к целевому файлу манифеста, содержащему список пакетов, которые нужно выполнить на этапе публикации. --no-build: не создавайте проект до публикации. Подразумевает --no-restore. --автономные сопутствующие приложения публикуют время выполнения .NET Core, устраняя необходимость устанавливать систему выполнения на целевую машину. Если идентификатор выполнения указан, он по умолчанию становится «true». --no-restore Не выполняйте неявное восстановление во время выполнения команды. -v, --многословность задаёт уровень детализации команды. Допустимые значения: Q[UIET], M[inimal], N[Ormal], D[etailed] и diag[nostic]. --no-dependencies устанавливает этот флаг так, чтобы игнорировать ссылки между проектами и восстанавливать только корневой проект. --force заставить все зависимости быть разрешитыми, даже если последнее восстановление прошло успешно. Это эквивалентно удалению project.assets.json. С точки зрения выполнения, команды CLI берут свои параметры и строят вызов «оригинальной» MSBuild для задания нужных свойств и желаемой цели для запуска. Чтобы лучше проиллюстрировать это, обратитесь к следующей команде:
Эта команда публикует приложение в папку pub с помощью конфигурации Publ. Внутренне эта команда переводится в следующий вызов 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 ~]# cat /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.
(Конец)
|