Прочитать на английском

Поделиться через


Создание шаблонов проектов и элементов .NET

Выберите операционную систему

.NET предоставляет систему шаблонов, которая позволяет пользователям устанавливать или удалять пакеты, содержащие шаблоны из NuGet, файла пакета NuGet или каталога файловой системы. В этой статье описывается, как управлять шаблонами .NET с помощью интерфейса командной строки SDK для .NET.

Дополнительные сведения о создании шаблонов см. в руководстве по созданию шаблонов.

Установка шаблонов

Пакеты шаблонов устанавливаются с помощью dotnet new команды пакета SDK для установки . Можно указать идентификатор пакета NuGet для пакета шаблона или папку, содержащую файлы шаблона.

Размещенный пакет NuGet

Пакеты шаблонов .NET CLI отправляются в NuGet для широкого распространения. Пакеты шаблонов также можно установить из частного веб-канала. Вместо отправки пакета шаблона в веб-канал NuGet файлы шаблонов nupkg можно распространять и вручную, как описано в разделе "Локальный пакет NuGet".

Для получения дополнительных сведений о настройке веб-каналов NuGet см. dotnet nuget add source.

Чтобы установить пакет шаблона из веб-канала NuGet по умолчанию, используйте dotnet new install {package-id} команду:

dotnet new install Microsoft.DotNet.Web.Spa.ProjectTemplates

Чтобы установить пакет шаблона из веб-канала NuGet по умолчанию с определенной версией, используйте dotnet new install {package-id}::{version} команду:

dotnet new install Microsoft.DotNet.Web.Spa.ProjectTemplates::2.2.6

Локальный пакет NuGet

При создании пакета шаблона создается файл nupkg . Если у вас есть файл nupkg, содержащий шаблоны, его можно установить с помощью команды dotnet new install {path-to-package}:

dotnet new install c:\code\nuget-packages\Some.Templates.1.0.0.nupkg
dotnet new install ~/code/nuget-packages/Some.Templates.1.0.0.nupkg

Папка

В качестве альтернативы установке шаблона из файла nupkg можно также установить шаблоны из папки напрямую с помощью команды dotnet new install {folder-path}. Указанная папка рассматривается как идентификатор пакета шаблона для любого найденного шаблона. Любой шаблон, найденный в иерархии указанной папки, устанавливается.

dotnet new install c:\code\nuget-packages\some-folder\
dotnet new install ~/code/nuget-packages/some-folder/

Указанный {folder-path} в команде идентификатор пакета шаблона становится идентификатором пакета шаблона для всех найденных шаблонов. Как указано в разделе "Пакеты шаблонов списка", можно получить список пакетов шаблонов, установленных с dotnet new uninstall помощью команды. В этом примере идентификатор пакета шаблона отображается как папка, используемая для установки:

dotnet new uninstall
Currently installed items:

... cut to save space ...

  c:\code\nuget-packages\some-folder
    Templates:
      A Template Console Class (templateconsole) C#
      Project for some technology (contosoproject) C#
    Uninstall Command:
      dotnet new uninstall c:\code\nuget-packages\some-folder
dotnet new uninstall
Currently installed items:

... cut to save space ...

  /home/username/code/templates
    Templates:
      A Template Console Class (templateconsole) C#
      Project for some technology (contosoproject) C#
    Uninstall Command:
      dotnet new uninstall /home/username/code/templates

Удаление пакета шаблона

Пакеты шаблонов удаляются с помощью dotnet new команды sdk для удаления . Можно указать идентификатор пакета NuGet для пакета шаблона или папку, содержащую файлы шаблона.

Пакет NuGet

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

Чтобы удалить пакет шаблона, используйте dotnet new uninstall {package-id} команду:

dotnet new uninstall Microsoft.DotNet.Web.Spa.ProjectTemplates

Папка

Когда шаблоны устанавливаются через путь к папке, путь к папке становится идентификатором пакета шаблона.

Чтобы удалить пакет шаблона, используйте dotnet new uninstall {package-folder-path} команду:

dotnet new uninstall c:\code\nuget-packages\some-folder
dotnet new uninstall /home/username/code/templates

Вывод списка пакетов шаблонов

С помощью стандартной команды удаления без идентификатора пакета можно просмотреть список установленных пакетов шаблонов вместе с командой, которая удаляет каждый пакет шаблона.

dotnet new uninstall
Currently installed items:

... cut to save space ...

  c:\code\nuget-packages\some-folder
    Templates:
      A Template Console Class (templateconsole) C#
      Project for some technology (contosoproject) C#
    Uninstall Command:
      dotnet new uninstall c:\code\nuget-packages\some-folder

Установка пакетов шаблонов из других пакетов SDK

Если вы установили каждую версию пакета SDK последовательно, например вы установили пакет SDK 6.0, пакет SDK 7.0 и т. д., у вас будут установлены шаблоны пакета SDK. Однако если начать с более поздней версии пакета SDK, например 7.0, включены только шаблоны для этой версии. Шаблоны для любого другого выпуска не включаются.

Шаблоны .NET доступны в NuGet, и их можно установить как любой другой шаблон. Дополнительные сведения см. в разделе Установка размещенного пакета NuGet.

Например, пакет SDK для .NET 9 включает шаблоны для консольного приложения, предназначенного для .NET 9. Если вы хотите использовать .NET Core 3.1, необходимо установить пакет шаблона 3.1.

  1. Попробуйте создать приложение, предназначенное для .NET Core 3.1.

    dotnet new console --framework netcoreapp3.1
    

    Если отображается сообщение об ошибке, необходимо установить шаблоны.

  2. Установите шаблоны проектов .NET Core 3.1.

    dotnet new install Microsoft.DotNet.Common.ProjectTemplates.3.1
    
  3. Попробуйте создать приложение еще раз.

    dotnet new console --framework netcoreapp3.1
    

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

    The template "Console Application" was created successfully.
    
    Processing post-creation actions...
    Running 'dotnet restore' on path-to-project-file.csproj...
      Determining projects to restore...
      Restore completed in 1.05 sec for path-to-project-file.csproj.
    
    Restore succeeded.
    

См. также