当前位置: 首页 > news >正文

【NuGet】引用nuget包后构建项目简单解析

背景:项目中有时候需要引用第三方包实现某些功能,比如引入NPOI,方便使用表格。此时就需要添加nuget包。

  1. 首先 在项目创建的时候会生成一个.csproj 文件,这个文件是C#项目的构建配置文件。我理解可以当做是一个说明书,告诉MSBuild(Microsoft Build Engine, .NET 和 Visual Studio 用的“构建系统”)项目的一些信息,比如编译哪些文件,引用哪些包。
  2. 当项目中引用一个NuGet包(VS → 管理 NuGet 包 或者 dotnet add package xxx),那么.csproj 文件 会记录一条包引用的信息。
<ItemGroup><PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>
  1. 当重新生成或者构建项目时,根据csproj 文件的内容,会从本地NuGet或者NuGet.org 下载对应版本的包(一个 .nupkg 压缩文件)。
  2. 把包解压,放到本地全局缓存目录(通常是 ~/.nuget/packages 或 %UserProfile%.nuget\packages)。
  3. 在生成(Build)时,编译器根据 csproj 中的引用,把对应的 DLL 引入项目。
  4. 因此,在bin/Debug/ 文件夹下可以看到该包的dll。此时将整个输出目录(bin/Debug/文件夹)拷贝到其他的电脑上,是可以正常运行的。如果仅仅是把exe/dll拷贝过去,程序大概率会报错。
  5. 但是,也有一种可能 引用的包不会显式的以dll出现在输出目录中,但实际上已经包含在项目中,这种情况不赘述(因为我也没搞懂)
    上面345 可以统称为还原NuGet包。

完结撒花~

http://www.dtcms.com/a/352378.html

相关文章:

  • day41-动静分离
  • 数字时代下的智能信息传播引擎
  • 仿真干货|解析Abaqus AMD的兼容与并行效率问题
  • 基于硅基流动API构建智能聊天应用的完整指南
  • 使用QML的Rectangle组件的边框属性
  • `stat` 系统调用详解
  • 学习碎片02
  • Firefox Relay 体验
  • Redis支持事务吗?了解Redis的持久化机制吗?
  • 面试八股文之——Java集合
  • 115、【OS】【Nuttx】【周边】效果呈现方案解析:重定向命令
  • Python编程快速上手—让繁琐工作自动化
  • 论文阅读-CompletionFormer
  • (我与爬虫的较量)码上爬第5题
  • JDK 8 → JDK 17 升级说明书(面向 Spring Boot / Spring Cloud / Spring )
  • Filter过滤器入门
  • android 事件处理源码
  • 当 AI 走进日常:除了聊天机器人,这些 “隐形应用” 正在改变我们的生活
  • 报告:2025机器人技术产业化研究|附130+份报告PDF、数据仪表盘汇总下载
  • 直播到AI助教:在线教育系统源码如何重塑知识付费平台生态?
  • 算法练习——26.删除有序数组中的重复项(golang)
  • 电影感氛围人像风光摄影后期Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • 抖音多账号管理平台哪家比较好?
  • 力扣 30 天 JavaScript 挑战 第40天 (第十一题)对纯函数和记忆函数有了更深理解
  • ABC420A-E题解
  • Zynq开发实践(FPGA之verilog仿真)
  • leetcode算法刷题的第十八天
  • 【世纪龙科技】职业院校汽车专业职业体验中心建设方案
  • 面试题随笔
  • 微服务-25.网关登录校验-网关传递用户到微服务