Visual Studio NugetPackageManager 界面中的“版本”列有何意义?(与“已安装”列不同)

Rei*_*l-- 5 .net nuget .net-core manage-nuget-packages visual-studio-2019

在此输入图像描述

“已安装”列已填充,但“版本”列未填充。

“版本”栏是什么意思?(与“已安装”列不同)

(我熟悉语义版本的概念;所以我确切地知道版本号的概念对于 nuget 包意味着什么。我想知道该界面中的列到底意味着什么。)


关于空白的后续问题就到这里了

小智 2

Installed应该很容易解释,当您选择特定的 NuGet 包时,该 NuGet 包的版本将在列中列出Installed,并且仅列出已安装它的项目。因此,如果一个项目没有\xe2\x80\x99安装这个NuGet包,那么它将显示空白。

\n

通常, 和Version代表同一事物(Installed)。首先,该Version列应仅显示/列出安装在 .NET Standard、.NET Core 或 .NET 项目中的 NuGet 版本号,对于 .NET Framework 项目,它不会列出\xe2\x80\x99t。这Version将匹配在project\xe2\x80\x99s项目文件(.xxproj文件)中设置的版本,即使.xxproj未安装NuGet包的特定版本(在文件中设置)。但通常情况下,它会列出与列相同的版本号Installed

\n

例如(在 .xxproj 文件中):

\n
<ItemGroup>\n    <PackageReference Include="LochNessBuilder" Version="3.0.0-alpha" />\n</ItemGroup>\n
Run Code Online (Sandbox Code Playgroud)\n

显然,该Version列列出了您正在使用(想要使用)的 NuGet 包的版本号,该Installed列列出了您已安装(或准备使用)的 NuGet 包的版本号,因为可能存在多个版本已安装的同一 NuGet 包)。

\n

我认为这可以概括为:

\n
    \n
  1. 如果您在项目中安装了特定版本的NuGet包,那么版本号将在Installed列中列出,如果没有,它将是空白的,并且该Installed列更有可能显示您已经安装了该版本的NuGet包。

    \n
  2. \n
  3. Version列中列出的版本号与文件Version中的属性设置匹配.xxproj,更有可能表明您正在使用此版本的 NuGet 包。

    \n
  4. \n
  5. 这两列通常显示一个特定项目的相同版本号。

    \n
  6. \n
  7. 基于 .NET Framework 的项目不会在Version列中列出版本号。它只会列出 .NET Core、.NET Standard 和 .NET 项目。原因应该与这些基于框架的项目/项目模板的不同结构以及如何安装/复制/存储/使用NuGet包的不同机制有关。

    \n
  8. \n
  9. 我相信这并不是很重要,除非您发现一个项目的两列中的它们不同。

    \n
  10. \n
\n