为什么某些NuGet命令只能在使用Package Manager控制台时访问,并且似乎不能作为NuGet CLI的一部分使用?

为什么某些NuGet命令只能在使用Package Manager控制台时访问,并且似乎不能作为NuGet CLI的一部分使用?,nuget,Nuget,我可以通过在命令前面加上numget…作为前缀来使用Cmd中的numget 但是,似乎有些命令必须从VisualStudio中的PackageManager控制台显式执行。例如,更新软件包-重新安装 为什么会这样?我使用的是两个不同版本的NuGet吗?根据NuGet CLI,我认为这是您的意思。你所注意到的差异是出于设计 NuGet CLI是一个命令行工具,支持还原、打包、安装等命令。您需要使用NuGet调用它,因为这是该工具的名称。 Visual Studio中的包管理器控制台是Powersh

我可以通过在命令前面加上
numget…
作为前缀来使用Cmd中的numget

但是,似乎有些命令必须从VisualStudio中的PackageManager控制台显式执行。例如,
更新软件包-重新安装


为什么会这样?我使用的是两个不同版本的NuGet吗?

根据NuGet CLI,我认为这是您的意思。你所注意到的差异是出于设计

NuGet CLI是一个命令行工具,支持还原、打包、安装等命令。您需要使用
NuGet
调用它,因为这是该工具的名称。 Visual Studio中的包管理器控制台是Powershell的包装器,命令与Powershell cmdlet一致

您可能正在使用不同的版本。您可以通过以下方式进行检查:

  • NuGet CLI- 请运行
    nuget help
    -
  • 包管理器控制台- 在VisualStudio中启动控制台时,它应该显示版本。例如:

  • 谢谢-我以前没有听说过
    Cmdlet
    s的想法。在Powershell周围创建包装器与使用可执行文件(如
    NuGet.exe
    )相比有什么好处?如果将.exe添加到用户的$PATH变量中,在我看来,它会有很大的优越性吗?而且也不那么令人困惑。而且似乎与Windows有朝一日将在服务器前端与之竞争的操作系统圣杯相一致——
    Linux
    ;)PackageManager控制台的目标是提供内置于VisualStudio中的控制台体验。添加不同的cmdlet是因为NuGet.exe没有在VS中提供,而是一种独立的体验。我发现使用标准终端更容易-这一个:。但是,我必须同时打开终端和package manager cmdlet