Какое значение имеет столбец «Версия» в интерфейсе Visual Studio NugetPackageManager? (в отличие от столбца «Установлено»)
Столбец «Установлено» заполняется, а столбец «Версия» - нет.
Что означает столбец "Версия"? (В отличие от столбца «Установлено»)
(Я знаком с концепцией семантических версий; поэтому я точно знаю, что означает концепция номера версии для пакета nuget. Я спрашиваю, что именно означает этот столбец в этом интерфейсе.)
Последующий вопрос о пустоте здесь .
2 ответа
Это должно быть легко объяснить: когда вы выбираете конкретный пакет NuGet, версия этого пакета NuGet будет указана в столбце и будет отображаться только для проектов, в которых он установлен. Поэтому, если один проект не устанавливает этот пакет NuGet, он будет пустым.
Обычно символ представляет то же самое (). Прежде всего, столбец должен отображать / перечислять только номер версии NuGet, который установлен в / для проектов .NET Standard, .NET Core или .NET, а для проекта .NET Framework он не отображается. Это будет соответствовать версии, заданной в файле проекта проекта (файл .xxproj), даже если конкретная версия (заданная в файле) пакета NuGet не установлена. Но обычно в столбце указывается тот же номер версии.
Например (в файле .xxproj):
<ItemGroup>
<PackageReference Include="LochNessBuilder" Version="3.0.0-alpha" />
</ItemGroup>
Таким образом, очевидно, что в столбце указан номер версии пакетов NuGet, которые вы используете (хотите использовать), а в столбце указан номер версии пакетов NuGet, которые вы установили (или подготовили к использованию, поскольку, возможно, существует несколько версий. того же пакета NuGet, который был установлен).
Я думаю, это можно резюмировать так:
1).Если конкретная версия пакета NuGet, которую вы установили в проекте, то номер версии будет указан в столбце, если нет, он будет пустым, а
Installed
столбец с большей вероятностью покажет, что вы установили эту версию пакета NuGet.
2).Номер версии, указанный в столбце, соответствует настройке свойства в
.xxproj
файл и с большей вероятностью покажет, что вы используете эту версию пакета NuGet.
3).В этих двух столбцах обычно отображается один и тот же номер версии для одного конкретного проекта.
4).Проект на основе .NET Framework не будет указывать номер версии в
Version
столбец. Он будет отображаться только для .NET Core, .NET Standard и .NET project. Причина должна быть связана с различными структурами этих шаблонов проекта / проекта на основе фреймворка, а также с различным механизмом установки / копирования / хранения / использования пакетов NuGet.
5).Я считаю, что это не очень важно, если вы не видите, что они разные в двух столбцах для одного проекта.
Это то, что я заметил (я не могу найти ссылки на это, может быть, кто-то может добавить к этому), но мой опыт показал следующее:
Когда вы используете старый формат Nuget для управления зависимостями Nuget, он НЕ заполняет поле, а только поле.
Когда вы переключаетесь на новый формат Nuget для управления зависимостями nuget, он заполняет
Если вы используете в своем решении сочетание старого и форматов, проекты, которые используют, будут отображать только
По сути, это способ для Nuget сообщить вам, какой формат вы используете, в каком проекте для управления зависимостями nuget.
Один из способов проверить это, если вы используете для управления пакетами Nuget, откройте параметры Visual Studio и измените параметр nuget по умолчанию на . Теперь откройте проект, в котором установлено несколько пакетов nuget, удалите и переустановите один пакет, и вы заметите, что для этого одного пакета, который теперь управляется с помощью