Определение формата проекта

NuGet работает со всеми проектами .NET. Но формат проекта (в стиле пакета SDK или не в стиле пакета SDK) определяет некоторые средства и методы, которые необходимо применять для использования и создания пакетов NuGet. В проектах в стиле пакета SDK используется атрибут пакета SDK. Важно указать тип проекта, так как методы и средства, применяемые для использования и создания пакетов NuGet, зависят от формата проекта. Для проектов не в стиле пакета SDK методы и средства зависят также от того, преобразован ли проект в формат PackageReference.

Стиль проекта не зависит от метода, используемого для создания проекта. В следующей таблице представлен формат проекта по умолчанию и связанный с ним инструмент CLI, используемый при создании проекта с помощью Visual Studio 2017 и более поздних версий.

Проекта Формат проекта по умолчанию Средство CLI Примечания.
.NET Standard Стиль пакета SDK Пакет SDK dotnet Проекты, созданные в версиях, которые выпущены до Visual Studio 2017, разработаны не в стиле пакета SDK. Используйте CLI nuget.exe.
.NET Core Стиль пакета SDK Пакет SDK dotnet Проекты, созданные в версиях, которые выпущены до Visual Studio 2017, разработаны не в стиле пакета SDK. Используйте CLI nuget.exe.
.NET Framework Проекты не в стиле пакета SDK CLI nuget.exe Проекты .NET Framework, созданные с помощью других методов, можно преобразовать в стиль пакета SDK. Для этого используйте пакет SDK dotnet.
Перенесенный проект .NET Проекты не в стиле пакета SDK Создавайте пакеты с помощью msbuild -t:pack. Для создания пакетов рекомендуем использовать msbuild -t:pack. В противном случае используйте пакет SDK dotnet. Перенесенные проекты не разработаны не в стиле SDK.

Проверка формата проекта

Если вы не знаете, разработан ли проект в стиле пакета SDK, найдите атрибут SDK в элементе <Project> в файле проекта (для C# это файл *.csproj). Если такой атрибут есть, проект разработан в стиле пакета SDK.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <Authors>authorname</Authors>
    <PackageId>mypackageid</PackageId>
    <Company>mycompanyname</Company>
  </PropertyGroup>

</Project>

Проверка формата проекта в Visual Studio

При работе в Visual Studio можно быстро проверить формат проекта с помощью одного из следующих методов:

  • В обозревателе решений щелкните проект правой кнопкой мыши и выберите команду изменения имя_проекта.csproj.

    Этот параметр доступен для проектов, использующих атрибут стиля пакета SDK, только в версиях начиная с Visual Studio 2017. При использовании других версий применяйте другой метод.

    Edit the project file

    В файле проекта в стиле SDK отображается атрибут пакета SDK.

  • В меню Проект выберите команду Выгрузить проект (или щелкните проект правой кнопкой мыши и выберите команду Выгрузить проект).

    В файле этого проекта не будет отображаться атрибут пакета SDK. Значит, проект разработан не в стиле пакета SDK.

    Unload the project

    Затем щелкните правой кнопкой мыши выгруженный проект и выберите команду изменения имя_проекта. csproj.

См. также