Как получить параметры NuGet в сообществе Visual Studio 2017? - PullRequest
0 голосов
/ 24 декабря 2018

Я борюсь с созданием пакетов NuGet.Я использую Visual Studio 2017 Community Edition.

Я видел пару видеороликов, в которых в меню при щелчке правой кнопкой мыши на проекте в обозревателе решений показан параметр «Пакет».Однако у меня нет такой возможности.Это одна из функций в других версиях Visual Studio (не для сообщества)?Я считаю, что я также видел опцию «создать пакет NuGet при сборке», упомянутую где-то.Я тоже не могу этого найти.

Я пробовал различные способы использования nuget, dotnet и msbuild из командной строки, но не добился большого успеха.Очень расстраивает.

Любая помощь приветствуется.

Ответы [ 3 ]

0 голосов
/ 24 декабря 2018

Пакет dotnet / msbuild доступен только для проектов в стиле SDK, но я считаю, что работает для всех версий Visual Studio, а также для командной строки..NET Core представила эти проекты в стиле SDK, которые можно определить по <Project Sdk="Microsoft.NET.Sdk">.Если ваш проект (.csproj, если это проект C #) не имеет свойства Sdk или не импортирует Microsoft.NET.Sdk ни одним из двумя другими способами , то это не проект в стиле SDK и нене поддерживает упаковку таким образом.Другое очевидное различие между двумя стилями проектов состоит в том, что SDK-проекты находятся всего в нескольких строках от нового шаблона проекта и не отображают файлы в проекте, тогда как проекты в старом стиле обычно имеют полноэкранный режим, даже из нового проекта.шаблон только с одним файлом класса, и он перечисляет отдельные файлы в проекте.Если вы хотите продолжить работу с этим типом проекта, вам нужно будет использовать nuget.exe pack и, возможно, вы захотите создать файл .nuspec для определения некоторых метаданных пакета.

Однако, используя SDKБудущее за проектами стиля, просто потребуется время для перехода всех существующих типов проектов Microsoft.Его гораздо проще использовать, поэтому лично я бы избегал проектов старого стиля, если вы не используете тип проекта (например, ASP.NET, а не ASP.NET Core), который его не поддерживает.

Все этосбивает с толку тех, кто плохо знаком с экосистемой .NET.Моя рекомендация: 1. при установке Visual Studio при выборе рабочей нагрузки убедитесь, что в списке компонентов выбран .NET Core, независимо от того, какая новейшая версия .NET Core доступна во время установки.При создании нового проекта в Visual Studio всегда выбирайте версию .NET Core или версию .NET Standard любого нового шаблона проекта, даже если вы хотите настроить таргетинг на (Windows) .NET Framework, и в этом случае вы редактируете .csproj и измените <TargetFramework>netstandard2.0</TargetFramework> на <TargetFramework>net45</TargetFramework>, хотя я бы порекомендовал многоцелевой таргетинг, добавив имя элемента и используя список, разделенный точкой с запятой: <TargetFrameworks>net45;netstandard2.0</TargetFrameworks>.Поэтому избегайте шаблона «Библиотека классов (.NET Framework)», вместо этого используйте «Библиотеку классов (.NET Standard)», а затем измените цель, если необходимо.

0 голосов
/ 24 декабря 2018

@ Зивкан повел меня по правильному пути.Изменение типов моих проектов на .Net Core из .Net Framework сделало доступными все опции, которые я упоминал в моем первоначальном посте.Расширения не нужны.

Мой проект библиотеки классов .Net Core теперь имеет опции Pack и Publish, доступные в контекстном меню проекта.Кроме того, на странице свойств проекта есть еще одна вкладка (Пакет).На этой странице есть опция «Создать пакет NuGet при сборке» вместе с версией, именем, тегами и другими свойствами.

Я много занимался разработкой .Net Framework, но игнорировал .Net Core и более новые.опции.Я думаю, мне нужно покопаться и узнать о них.

0 голосов
/ 24 декабря 2018

Если вы действительно хотите использовать Visual Studio, я бы порекомендовал установить расширение, которое поможет вам с этой проблемой.Например, это .Параметры, которые люди имеют в видео, зависят от установленных расширений.Для вас это то же самое.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...