展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > c#如何使用NuGet包管理器_c#NuGet包管理器的几种常见写法

c#如何使用NuGet包管理器_c#NuGet包管理器的几种常见写法

Visual Studio 中 NuGet Package Manager 窗口在 SDK 风格项目中默认隐藏,推荐使用右键“Manage NuGet Packages”或编辑 .csproj;Package Manager Console 需手动启用,且需正确配置源、项目上下文和目标框架兼容性。

本文目录

    Visual Studio 中 NuGet Package Manager 窗口在 SDK 风格项目中默认隐藏,推荐使用右键“Manage NuGet Packages”或编辑 .csproj;Package Manager Console 需手动启用,且需正确配置源、项目上下文和目标框架兼容性。

    c#如何使用NuGet包管理器_c#NuGet包管理器的几种常见写法

    Visual Studio 里点不亮 NuGet Package Manager 窗口?

    这事儿挺常见,但原因可能和你想的不太一样。问题往往不在于你的 Visual Studio 坏了,而在于项目类型本身。对于现代的 .NET Core 或 .NET 5 以上的 SDK 风格项目(也就是项目文件里写着 Sdk="Microsoft.NET.Sdk" 的那种),新版本的 VS 已经默认隐藏了那个经典的“NuGet Package Manager”窗口。

    为什么?因为微软更推荐你使用两种新方式:要么右键点击项目,选择 Manage NuGet Packages... 那个图形界面;要么更直接一点,打开 .csproj 文件手动编辑。如果你在右键菜单里压根没找到这个选项,先别急。检查一下你的项目文件,看看里面是不是已经包含了 节点。如果项目还在使用老旧的 packages.config 文件,那说明它还没迁移到新的包管理格式,这时候那个旧的“NuGet Package Manager”窗口倒是有可能出现——不过,这已经是过时的做法了。

    • 在 VS 2022 里,Tools → NuGet Package Manager → Package Manager Console 这个控制台默认是禁用自动加载的。第一次想用它?得手动去 Tools → Options → Environment → Startup 里,勾选上 Load last loaded package manager console 才行。
    • 控制台打开后,默认的操作上下文是 Default Project。如果下拉框里空空如也,或者执行命令时总报 Unable to find package 这类错,第一步先确认在下拉框里选中了具体的项目(注意,是项目,不是整个解决方案)。
    • 另外,这个 Package Manager Console 本质上是个 PowerShell 环境,但它被 NuGet 模块“接管”了。这意味着你不能在里面随意运行所有 PowerShell 命令(比如你敲个 ls 试试,很可能就会报错)。

    Install-Package 命令为什么总提示找不到包?

    命令敲下去,结果蹦出来一个“找不到包”?先别怀疑自己拼错了包名——虽然这也可能——但更常见的原因是“源”没配对。Visual Studio 默认通常只启用了官方的 nuget.org 源。如果你需要从公司内部的私有源、GitHub Packages 或者 Azure Artifacts 拉取包,这些源都需要手动添加进去。

    怎么查看当前有哪些源?在 Package Manager Console 里执行 Get-PackageSource 命令一目了然。要添加新源,可以用类似这样的命令:Register-PackageSource -Name "MyFeed" -Location "https://api.nuget.org/v3/index.json" -ProviderName "NuGet"。关键点在于,那个 -ProviderName 参数必须指定为 NuGet。

    • 包名是区分大小写的。Newtonsoft.Json 就是 Newtonsoft.Json,写成全小写的 newtonsoft.json 可能在某些场景下能被自动纠正,但别指望每次都这么幸运。
    • 想安装特定版本?记得加上 -Version 参数,比如 Install-Package Microsoft.Extensions.Logging -Version 7.0.0。如果不加,默认安装的就是最新的稳定版(预发布版本会被跳过)。
    • 还有一种“静默失败”的情况:你的项目目标是 .NET Framework 4.6.1,却试图安装一个只支持 .NET 6 及以上版本的包(例如某些 Microsoft.AspNetCore.Http 的版本)。这时候,要么命令执行失败,要么会报出类似 Incompatible target framework 的错误。

    编辑 .csproj 手动加 PackageReference 的关键细节

    对于追求可控性和自动化的工作流(比如 CI/CD 管道,或者需要统一管理多个项目的依赖版本),直接编辑 .csproj 文件往往是更优选择。不过,这里的 XML 结构和属性含义可马虎不得,一不小心就会导致编译时报 MSB4057 错误,或者引用根本不起作用。

    来看一个正确的写法示例:

    这条引用必须放在 标签内部,而且这个 ItemGroup 通常应该是 节点的直接子元素,可别把它塞到某个 里面去了。

    • Include 属性里填的是包的 ID,不是 DLL 的文件名,也不是命名空间。举个例子,要安装的是 Microsoft.Data.SqlClient,而不是简单地写个 SqlClient。
    • Version 属性强烈建议使用固定值,比如 5.1.5。尽量避免使用通配符像 5.* 这样的写法,因为它在执行包还原(restore)时的行为可能难以预测,在 CI 环境中尤其容易引发问题。
    • 如果需要根据条件来引用包(比如只在 Debug 配置下引入某个测试工具),可以加上 Condition 属性:

    dotnet add package 和 VS 图形界面行为为何不一致?

    这背后的根本原因,在于两者作用域和默认逻辑的不同。dotnet add package 是命令行工具(CLI)的命令,它只针对当前目录下的那个 .csproj 文件进行操作,不会去读取 Visual Studio 解决方案级别的设置。而 VS 的图形界面则“聪明”得多,它会自动处理项目之间的依赖传递、尝试进行版本对齐(例如统一整个解决方案里 Microsoft.NETCore.App 这种共享框架的版本)。

    举个例子:你在解决方案的根目录执行 dotnet add src/MyApp/MyApp.csproj package AutoMapper,这条命令只会更新 MyApp.csproj 文件,它既不会去动其他项目,也不会检查像 Directory.Packages.props 这类文件中定义的全局版本控制规则。

    • CLI 命令默认使用 nuget.org 作为包源。如果想指定其他源,必须通过 --source 参数明确告知,例如:dotnet add package Moq --source https://api.nuget.org/v3/index.json。
    • 如果项目文件里设置了 true 来启用锁文件,那么 CLI 命令在添加包时会生成或更新 packages.lock.json 文件。而通过 VS 图形界面操作,这个锁文件不一定会被同步刷新。
    • 当你在 VS 图形界面上点击“更新”按钮时,背后实际调用的可能是 Update-Package 这样的 PowerShell 命令或其内部等效逻辑。它会尝试保留版本号中定义的语义化版本范围(例如 ~3.0.0)。相比之下,CLI 的 dotnet add package 命令则总是简单直接地在 .csproj 里写入一个固定的 Version 属性值。

    说到底,在 NuGet 包管理上,真正让人头疼的往往不是“怎么把包装上”,而是“装完之后引用为什么不生效”,或者“为什么在开发机器上好好的,一到构建服务器就出问题”。所以,务必反复确认:PackageReference 是否放在了正确的 ItemGroup 里?有没有被某个 Condition 属性意外地屏蔽掉?而那些更隐蔽的坑,比如私有源的地址是否正确、访问凭据是否有效、企业内网的 TLS 版本是否支持,这些才是最容易卡住团队协作和自动化流程的关键所在。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 C#
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。

    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    Maya(Autodesk Maya) Windows版
    Maya(Autodesk Maya) Windows版

    Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。