#.net #nuget #nuget-package
#.net #nuget #nuget-пакет
Вопрос:
Я работаю над импортом EPPlus в один из моих проектов. Видя, что у меня нет никакого намерения изменять инкапсулированный исходный код, я думаю, что лучший подход — импортировать пакет nuget.
Я пытаюсь установить зависимости перед импортом (а именно, предназначена ли версия для .net core или .net, и если да, то для каких версий).
Когда я просматриваю информацию о пакете на этом веб-сайте, я не вижу никакого способа сделать это, и я также не вижу при просмотре опций, доступных в командной строке nuget.
https://www.nuget.org/packages/EPPlus/
https://learn.microsoft.com/en-us/nuget/tools/cli-ref-list
Как я могу просмотреть зависимости этого пакета?
Комментарии:
1. Зависимости отображаются на странице, на которую вы ссылаетесь, в
.NET Standard 2.0
разделе. Что вы имеете в видуimport the nuget package
в любом случае? Вы добавляете пакет NuGet в проект, и NuGet при необходимости установит все зависимости2. Что касается,
if the version is for .net core or .net
вDependencies
разделе показано, что это пакет .NET Standard 2.0.3. Спасибо. Теперь я это вижу. Это немного вводит в заблуждение, потому что в списке изменений указано «Новые функции в версии 4.5: * Поддержка .NET Core» Означает ли это, что они упаковывают оба в один и тот же пакет nuget?
4. Зависимости всегда отображаются в разделе «Зависимости». Это одинаково для всех пакетов NuGet. И нет, он предназначен не для обоих, а для одного . Пакет NET Standard 2.0, который может использоваться обеими средами выполнения. Если бы у него были зависимости, зависящие от среды выполнения, они появились бы в соответствующем разделе в
Dependencies
Ответ №1:
Как написал Панайотис Канавос в комментарии к вопросу, вы можете проверить раздел зависимостей на странице сведений о пакете на nuget.org чтобы увидеть, какие целевые платформы поддерживает пакет. Однако, к сожалению, он показывает только зависимости, определенные в файле nuspec, который теоретически может не соответствовать библиотекам в пакете, но что более распространено, когда пакет поддерживает только одну платформу или не имеет никаких зависимостей, nuspec не содержит раздела зависимостей и, следовательно, nuget.org не сообщает нам, для каких фреймворков пакет содержит библиотеки.
Что вы можете сделать, так это перевести URL на страницу сведений о пакете на nuget.org и измените n
на f
, чтобы указать на fuget.org . Например, EPPlus 4.1.1 в nuget.org URL-это:https://www.nuget.org/packages/EPPlus/4.1.1 . Обратите внимание, как nuget.org ничего не перечисляет в разделе зависимости. Измените n на f, чтобы получить этот URL:https://www.fuget.org/packages/EPPlus/4.1.1 . Когда вы открываете эту страницу, вы видите рядом с фреймворками надписи net35 и net40, так что вы можете видеть, что пакет содержит двоичные файлы для .NET Framework 3.5 и .NET Framework 4.0.
Глядя на последнюю версию EPPlus, мы видим, что в ней есть двоичные файлы для net35, net40 и netstandard2.0. Хотя net35 и net40 являются средами выполнения, netstandard2.0 — нет, но если мы посмотрим на страницу документации netstandard, мы увидим, что netstandard2.0 реализован .NET Core 2.0, .NET Framework 4.6.1, Mono 5.4 и другими.