前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2018-8-24-快捷调试Nuget包

2018-8-24-快捷调试Nuget包

作者头像
黄腾霄
发布2020-06-10 11:03:59
9390
发布2020-06-10 11:03:59
举报
文章被收录于专栏:黄腾霄的博客

开发C#项目时通过Nuget引用添加依赖很方便,但是调试的时候就不一样了。


情景再现

我们有一个超级基础的库A,我们的多个公共组件B,C,D,和最终产品E都依赖于库A

现在我们在开发A的新功能时,期望能在最终产品E中得到测试验证。

不可行方法

  • 通过添加引用的方式添加本地包

由于最终产品E的依赖项,依赖于nuget上的库A,nuget发现有同名dll就会出现冲突

可行方法

  • 最简单的方法是,我们打出一个alpha包,发送到nuget服务器中,然后在最终产品E中升级 缺点是成本较高,每次测试都打一个包上传,版本号上升搜搜的。前提还是每个开发小伙伴都能够上传nuget
  • 另一个较为方便的方法是,我们使用国内著名WPF大师猫神(晒太阳的猫),开发的DLL源码调试工具DLL Reference Path Change Auto - Visual Studio Marketplace 这个工具非常棒,有着全5星好评,大家快去下载

懒人方法

替换nuget缓存

我们知道在vs中的nuget包,从nuget服务器中下载之后会添加到本地nuget缓存目录。之后每次编译时只需要从nuget缓存中获取现有的dll进行编译。那么我们就可以通过替换nuget缓存目录中的文件实现使用本地dll调试。

实操
  • 我们找到目标nuget库所在的缓存目录,注意版本号要相同哦
  • 将原有的dll改为bak,此时我们发现vs对项目中所有有关于这个库的引用都飘红了,提示需要还原nuget
  • 然后我们将本地的dll放进去,发现一家可以成功使用本地包的方法啦~~

这个方法存在的缺点是,nuget缓存会影响所有项目,如果忘记调试后改回来,容易让其他项目出错

高级懒人方法

搭建本地nuget源
  • 找到vs中工具-nuget管理器
  • 添加一个本地程序包源
  • 然后你可以在vs中的指定项目右键-打包(需要新格式才能支持),生成一个本地nuget包,放到刚刚的文件夹中
  • 然后在产品项目里指定本地的程序包源,就可以看到你本地的nuget包了

本文会经常更新,请阅读原文: https://xinyuehtx.github.io/post/%E5%BF%AB%E6%8D%B7%E8%B0%83%E8%AF%95Nuget%E5%8C%85.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名黄腾霄(包含链接: https://xinyuehtx.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 情景再现
    • 不可行方法
      • 可行方法
      • 懒人方法
        • 替换nuget缓存
          • 实操
        • 高级懒人方法
          • 搭建本地nuget源
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档