Создание локального репозитория NuGet

продолжая предыдущую тему

Эм… :thinking: Начал делать, создал папку, а дальше что? :man_shrugging: Что в неё копировать?
Нашел более подробное описание

Go to project properties > Package. Fill assembly details. Check on Generate NuGet package on build. Save.

Но у меня нет такой вкладки в свойствах проекта :thinking: И пункта Pack в меню ПКМ тоже нет :man_shrugging:

Созданный нугетом пакет.

Это вроде только в .NET Standard проектах.


а это какой?

Написано ж, .NET Framework.

А он не стандартный?
Почему в этом нельзя? Зачем он тогда нужен?

То есть, чтобы из этого теперь сделать пакет NuGet, надо в солюшне удалить проект библиотеки и пересоздать его как .NET Standard?
А какой выбрать, чтобы под 4.7.2? Там только 2.0, 2.1 и 6.0.

Ну они там добавили путаницы со всеми этими .NET Core (и .NET без Framework), .NET Standard, надо разобраться + понять какая версия Standard чему соответствует. :kolobokkaeef:

Если нужен .NET Standard :man_shrugging:

Можно ж и для Framework их создавать, как выше показано, просто видимо без кнопки студии.

:confusedparrot:
То есть, NET, NET Framework, NET Standard - это три разные фигни? :thinking:

Да, ну Standard это по идее просто спецификация (чтоб библиотека была совместима со всем), а остальное (Framework, Core/.NET, Mono, …) – реализации.

Создал тестовую библиотеку с прицеливанием (как же дебильно звучит :rofl: ) на NET Standard 2.1. Получился файл downloader.1.0.0.nupkg. Закинул его в папку Local NuGet repository.
При установке пакета в проект, выдаёт ошибку Не удалось установить пакет «downloader 1.0.0». Вы пытаетесь установить этот пакет в проект, требуемая версия платформы которого — «.NETFramework,Version=v4.7.2», но в пакете нет ссылок на сборки или файлов содержимого, совместимых с этой платформой. Дополнительную информацию можно получить у автора пакета..
Такую же ошибку выдаёт при установке некоторых пакетов из NuGetа. Что это значит?

2.0 надо .NET Standard | Microsoft Docs

Переключил на 2.0, пересобрал, упаковал, перекопировал файл nupkg. Теперь пишет: Ошибка NU1202 Пакет downloader 1.0.0 несовместим с netstandard2.0 (.NETStandard,Version=v2.0). Пакет downloader 1.0.0 поддерживает: netstandard2.1 (.NETStandard,Version=v2.1).
Всё-равно 2.1 :thinking:
downloader.csproj:

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

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

</Project>

хз, у меня все работает.

Студия 2022, установил с framework 4.7.2 и .NET 6, создал проект библиотеки для стандарта 2.0, поставил галочку про сборку пакета в настройках.

Бывает из-за кеша проблема, в настройка нугета есть кнопка очистки. Но тогда бы наверно было старое сообщение + хз применяется ли вообще кеш для локальных.

После чистки кеша, тестовый проект заработал. Но в не-тестовом пишет Ошибка Идентификатор пакета “Multi threaded downloader” содержит недопустимые символы. Примеры допустимых значений: ‘MyPackage’", "‘MyPackage.Sample’. Multi threaded downloader C:\Program Files\dotnet\sdk\6.0.301\Sdks\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets 221.
Пробелы, чтоли, не нравятся? :thinking: