如何创建可在Web、控制台等多项目复用的本地Nuget包
本地通用NuGet包创建及复用操作指引
一、控制台应用打包为可被引用的NuGet文件操作步骤
默认控制台应用的输出类型为可执行文件,无法直接被其他项目引用,需按以下步骤调整后打包:
- 右键控制台项目,选择「属性」,在「应用」标签页将「输出类型」从「控制台应用」修改为「类库」,如果需要同时保留控制台启动能力,可配置条件编译规则实现双输出,无需保留的话直接修改即可
- 切换到属性页的「包」标签,勾选「构建时生成NuGet包」,填写包ID、版本号、作者、描述等必填元数据,包ID需保证唯一不与其他包冲突
- 右键项目点击「打包」,或在项目根目录打开终端执行
dotnet pack命令,生成的.nupkg包文件默认输出到项目的bin\Debug或bin\Release目录下 - 如果项目引用了其他第三方NuGet包或本地类库,打包时会自动将依赖项写入包的依赖清单,引用项目安装时会自动匹配安装对应依赖
二、公共类库通过NuGet包实现跨项目代码复用全流程
2.1 公共类库打包
- 建议优先选择.NET Standard类库项目进行公共逻辑开发,.NET Standard兼容性最强,可被.NET Framework、.NET Core/.NET 5+的Web、控制台等所有类型项目引用
- 同上述打包步骤,配置包元数据后执行打包操作,获取
.nupkg文件
2.2 本地NuGet源配置
要让其他项目能找到你生成的本地NuGet包,需先配置本地包源:
- 打开Visual Studio,点击顶部菜单「工具」→「选项」→「NuGet包管理器」→「包源」
- 点击右上角「+」按钮新增包源,自定义名称,源路径选择你专门存放本地NuGet包的文件夹,点击「更新」后保存配置
- 参考示意图:
2.3 项目引用本地NuGet包
- 打开需要引用公共包的目标项目,右键项目选择「管理NuGet包」
- 在页面右上角的「包源」下拉框,选择你刚才新增的本地包源
- 切换到「浏览」标签,即可看到所有存放在本地源的NuGet包,选中需要的包点击「安装」即可完成引用
- 参考示意图:
2.4 版本更新操作
公共类库代码修改后,只需提升包版本号重新打包,将新的.nupkg文件放入本地源目录,目标项目在NuGet管理页的「更新」标签即可看到新版本,点击更新即可同步最新代码。
内容的提问来源于stack exchange,提问作者AMIT GUPTA
相关产品推荐
相关产品推荐

