Учебник. Установка и использование локального средства .NET с помощью интерфейса командной строки .NET

Эта статья относится к следующему. ✔️ SDK для .NET Core 3.0 и более поздних версий

В этом учебнике вы узнаете, как установить и использовать локальное средство. Вы используете инструмент, созданный в первом учебнике этой серии.

Предварительные требования

  • Выполните действия из первого руководства этой серии.

  • Установите среду выполнения .NET Core 2.1.

    В данном учебнике вы установите и используете средство, нацеленное на .NET Core 2.1, поэтому вам необходимо установить эту среду выполнения на ваш компьютер. Чтобы установить среду выполнения 2.1, перейдите на страницу загрузки .NET Core 2.1 и найдите ссылку на установку среды выполнения в колонке Run apps — Runtime (Запуск приложений — среда выполнения).

Создание файла манифеста

Чтобы установить средство только для локального доступа (для текущего каталога и подкаталогов), его необходимо добавить в файл манифеста.

Из папки microsoft.botsay перейдите на один уровень вверх к папке repository:

cd ..

Создайте файл манифеста, выполнив команду dotnet new:

dotnet new tool-manifest

Выходные данные свидетельствуют об успешном создании файла.

The template "Dotnet local tool manifest file" was created successfully.

Файл .config/dotnet-tools.json пока не имеет в себе никаких средств:

{
  "version": 1,
  "isRoot": true,
  "tools": {}
}

Средства, перечисленные в файле манифеста, доступны для текущего каталога и подкаталогов. Текущим является каталог, содержащий каталог .config с файлом манифеста.

При использовании команды CLI, которая относится к локальному средству, пакет SDK ищет файл манифеста в текущем каталоге и родительских каталогах. Если он находит файл манифеста, но файл не включает указанное средство, поиск продолжается по родительским каталогам. Поиск заканчивается после нахождения указанного средства или файла манифеста с isRoot установленным на true.

Установка botsay в качестве локального средства

Установите средство из пакета, который вы создали в первом учебнике:

dotnet tool install --add-source ./microsoft.botsay/nupkg microsoft.botsay

Эта команда добавляет средство в файл манифеста, созданный на предыдущем шаге. Вывод команды показывает, в каком файле манифеста находится только что установленное средство:

You can invoke the tool from this directory using the following command:
'dotnet tool run botsay' or 'dotnet botsay'
Tool 'microsoft.botsay' (version '1.0.0') was successfully installed.
Entry is added to the manifest file /home/name/repository/.config/dotnet-tools.json

Файл .config/dotnet-tools.json теперь содержит одно средство:

{
  "version": 1,
  "isRoot": true,
  "tools": {
    "microsoft.botsay": {
      "version": "1.0.0",
      "commands": [
        "botsay"
      ]
    }
  }
}

Работа со средством

Запустите средство, выполнив команду dotnet tool run из папки репозиторий:

dotnet tool run botsay hello from the bot

Восстановление локального инструмента, установленного другими пользователями

Обычно вы устанавливаете локальное средство в корневой каталог репозитория. После записи файла манифеста в репозиторий после изменения, другие разработчики получают последний файл манифеста. Чтобы установить все средства, перечисленные в файле манифеста, они могут запустить всего лишь одну команду dotnet tool restore.

  1. Откройте файл .config/dotnet-tools.json и замените его содержимое на следующий JSON:

    {
      "version": 1,
      "isRoot": true,
      "tools": {
        "microsoft.botsay": {
          "version": "1.0.0",
          "commands": [
            "botsay"
          ]
        },
        "dotnetsay": {
          "version": "2.1.3",
          "commands": [
            "dotnetsay"
          ]
        }
      }
    }
    
  2. Сохраните изменения.

    Внесение этого изменения аналогично получению последней версии из репозитория после установления пакета dotnetsay для каталога проекта другим пользователем.

  3. Выполните команду dotnet tool restore.

    dotnet tool restore
    

    После выполнения команды должен появиться результат, подобный приведенному ниже.

    Tool 'microsoft.botsay' (version '1.0.0') was restored. Available commands: botsay
    Tool 'dotnetsay' (version '2.1.3') was restored. Available commands: dotnetsay
    Restore was successful.
    
  4. Убедитесь, что средства доступны:

    dotnet tool list
    

    Выходные данные представляют собой список пакетов и команд, как показано в следующем примере:

    Package Id      Version      Commands       Manifest
    --------------------------------------------------------------------------------------------
    microsoft.botsay 1.0.0        botsay         /home/name/repository/.config/dotnet-tools.json
    dotnetsay        2.1.3        dotnetsay      /home/name/repository/.config/dotnet-tools.json
    
  5. Протестируйте средства:

    dotnet tool run dotnetsay hello from dotnetsay
    dotnet tool run botsay hello from botsay
    

Обновление локального средства

Установленная версия локального средства dotnetsay — 2.1.3. Используйте команду dotnet tool update, чтобы обновить средство до последней версии.

dotnet tool update dotnetsay

В выходных данных указывается новый номер версии:

Tool 'dotnetsay' was successfully updated from version '2.1.3' to version '2.1.7'
(manifest file /home/name/repository/.config/dotnet-tools.json).

Команда update находит первый файл манифеста, содержащий идентификатор пакета, и обновляет его. Если такой идентификатор пакета отсутствует в любом файле манифеста, находящегося в области поиска, пакет SDK добавляет новую запись в ближайший файл манифеста. Область поиска поднимается вверх по родительским каталогам, пока не будет найден файл манифеста с isRoot = true.

Удаление локального средства

Удалите установленные средства, выполнив команду dotnet tool uninstall:

dotnet tool uninstall microsoft.botsay
dotnet tool uninstall dotnetsay

Устранение неполадок

Если при выполнении учебника появляется сообщение об ошибке, см. статью Устранение неполадок при использовании средства .NET.

См. также

Дополнительные сведения см. в разделе о средствах .NET