有关 NuGet.org 相关常见问题(如 NuGet.org 帐户问题),请参阅NuGet.org 常见问题解答。
安装指南中提供了有关 UI 和命令行工具的所有信息。
命令行工具、 nuget.exe
生成和运行通常在 Windows 下运行。 NuGet 可以在 Unix 操作系统上运行mono
,但它不受 NuGet 的支持策略正式支持。
了解包的主要来源为 nuget.org(或其他私有源)上的包清单页。 nuget.org 上的每个包页面都包含包的说明、其版本历史记录和使用情况统计信息。 包页面中的“信息”部分还包含项目网站的链接,此网站通常提供大量实例和其他文档,帮助你了解包的使用方法。
有关详细信息,请参阅查找和选择包。
- Windows 版 Visual Studio 支持包管理器 UI 和包管理器控制台。
- Visual Studio for Mac 具有内置 NuGet 功能,如在项目中包括 NuGet 包中所述。
- Visual Studio Code(所有平台)与 NuGet 不存在任何直接集成。 请使用 NuGet CLI 或 dotnet CLI。
- Azure DevOps 提供还原 NuGet 包的生成步骤。 还可以在 Azure DevOps 上托管私有 NuGet 包源。
在 Visual Studio 中,请使用帮助 > 关于 Microsoft Visual Studio 命令,然后查看NuGet 包管理器旁显示的版本。
或者,启动“包管理器控制台”(工具 > NuGet 包管理器 > 包管理器控制台),输入 $host
,然后查看包括版本信息在内的 NuGet 的相关信息。
NuGet 旨在将 .NET 库引入项目,通常适用于 .NET 语言。 由于 NuGet 还在某些项目类型中支持 MSBuild 和 Visual Studio 自动化,因此它也在不同程度上支持其他项目和语言。
最新版 NuGet 支持 C#、Visual Basic、F#、WiX、C++ 和 Q#。
NuGet 对多种项目模板提供完整支持,如 Windows、Web、Cloud、SharePoint 和 Wix 等。
在包管理器 UI,转到更新选项卡,选择全部更新;或者使用包管理控制台中的 Update-Package
命令。
若要更新模板本身,则需要手动更新模板存储库。 请参阅与该主题相关的 Xavier Decoster 博客。 请注意,此操作的风险由自己承担,因为如果所有依赖项的最新版本不相互兼容,手动更新可能会损坏该模板。
请参阅安装指南。 若要检查当前安装的工具版本,请使用 nuget help
。
可以根据 MIT 许可条款重新分发 nuget.exe。 你有责任更新和维护你选择重新分发的所有 nuget.exe 副本。
是的,可以向 nuget.exe
添加自定义命令,如 Archive.org 上的 Rob Reynold 帖子所述。
Visual Studio 自动化对象模型中的顶层对象称为 DTE (开发工具环境)对象。 控制台通过名为 $DTE
的变量提供此对象。 有关详细信息,请参阅 Visual Studio 扩展性文档中的自动化模型概述。
我尝试将 $DTE 变量强制转换为类型 DTE2,但出现错误:无法将类型“EnvDTE.DTEClass”的“EnvDTE.DTEClass”值转换为类型“EnvDTE80.DTE2”。 为什么会这样?
这是 PowerShell 与 COM 对象交互的已知问题。 请尝试以下做法:
`$dte2 = Get-Interface $dte ([EnvDTE80.DTE2])`
Get-Interface
是 NuGet PowerShell 主机添加的帮助程序函数。
请参阅创建和发布包。
请参阅托管包概述。
请参阅批量发布 NuGet 包 (jeffhandly.com)。
可以,请参阅 Scott Hanselman 的博客文章 How to access NuGet when nuget.org is down (or you're on a plane)(如何在 nuget.org 不可用(或用户在飞机上)时访问 NuGet)(hanselman.com)。
请使用 nuget config -set repositoryPath=<path>
设置 Nuget.Config
中的 repositoryPath
设置。
请将 Nuget.Config
中的 disableSourceControlIntegration
设为 true
。 此密钥适用于解决方案级别,因此需要添加到 $(Solutiondir)\.nuget\Nuget.Config
文件中。 从 Visual Studio 中启用包还原将自动创建此文件。
请参阅启用和禁用包还原。
将本地包安装到项目中时,需要选择“所有”源。 这样可以聚合所有源,而不只是一个源。 本地存储库用户通常不希望因为公司政策而意外安装远程包,因此才会出现此错误。
对于各个项目位于单独文件夹中的大多数项目,用户不必考虑此问题,因为 NuGet 会识别每个项目中的 packages.config
文件。 如果使用 NuGet 3.3+ 并且同一文件夹中有多个项目,可将项目名称插入 packages.config
文件名(使用 packages.{project-name}.config
模式),然后 NuGet 将使用该文件。
使用 PackageReference 时不必考虑此问题,因为每个项目文件仅包含自己的依赖项列表。
- 将
https://api.nuget.org/v3/index.json
添加到源列表;或 - 删除
%appdata%\.nuget\NuGet.Config
(Windows) 或~/.nuget/NuGet/NuGet.Config
(Mac/Linux) 并指示 NuGet 重新创建它。
在 package. .config 项目中,如果安装了带 build
属性或目标的包,NuGet 将添加一个 EnsureNuGetPackageBuildImports
目标,以验证在生成之前是否已导入包 msbuild 内容。
如果已手动修改 target
,NuGet 可能无法检测到它需要在迁移时删除。
如果项目是 PackageReference
,并且在项目文件中仍有此目标,则可以放心删除。