专栏首页.NET技术NuGet的使用心得

NuGet的使用心得

前言

  上星期发布了NuGet的使用和服务搭建后,同时NuGet在部门里也使用了起来。经过这些天的使用,总结了些小技巧和注意点,希望和大家分享下。

问题提出

  使用了NuGet的朋友们估计都知道,在签入代码到TFS的时候,会把从NuGet下载的程序包包含并签入到TFS,而且每更新了一次程序包,都会重新签入一份新的版本程序包,那么,问题来了,随着时间推移,程序包的版本会越来越多,那么签入到TFS代码库的程序包也会越来越多,而旧版本又不需要了,没必要占着空间。

  翻看了很多资料,发现【启用NuGet程序包还原】可以很好的解决问题。

启用NuGet程序包还原

  开始我看到这个功能,想了半天也没搞清楚干嘛用的。后来试了一下,发现就是一个自动下载的程序包的功能,可能我这么说得有点含糊。

  在解决方案右键,点击【启用NuGet程序包还原】,各种确定后发现解决方案里多了个.nuget文件夹,我们暂且先不理是干嘛的。在此之后,我们安装其他的程序包之后签入,会发现并未包含已安装的程序包,而需要签入的只是几个config文件和项目文件而已。那么将文件签入到TFS,其他人获取最新后只有配置文件变更了,没有拿到程序包难道编译不会失败么?

  打开【引用】,发现几个从NuGet安装的组件库的确报黄色感叹号,不用着急,生成一次项目就可以了,可以从下方的生成信息里发现,解决方案缺少的程序包会自动从NuGet上自动下载与Package.config对应的版本。

注意点

  用【启用NuGet程序包还原】后,会从已配置好的【程序包源】里下载对应的程序包。

  换句话说,假如你在内部NuGet服务下载了程序包并签入了文件,但某个同事可能是新来的,vs的【程序包源】没有添加内部程序包源,就会导致无法自动下载程序包,导致编译报错。

  因此,我在部门使用的时候要求各位同时在vs里添加上内部程序包源,包括开发和测试。

  另外,在更新程序包的时候,可能因为独占签出文件导致程序包更新失败的,可以在之前更新程序包的时候签出选择保持原有锁,或者在更新失败后,把更新失败组件库删除了,重新安装一次。

新想法

  有同事提出,假如每次更新程序包,都得通过【NuGet Package Explorer】上传,然后打开vs里的【管理NuGet程序包】点击更新,那多麻烦~~~

  有没有办法可以做到发布或生成的时候就上传程序包,或获取最新的时候自动更新最新的程序包版本。

  具我了解可以的!因为这些发布程序包和更新程序包都可以通过写命令行进行操作的,那么再通过写一个vs插件结合发布和获取最新,应该是可以实现的。

  如果园子里的朋友有哪位曾经做过,可以分享一下心得。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NuGet的使用和服务搭建

       最近部门,在开发的时候遇到一个问题,现在有项目A B C三个项目,项目B和C分别提供了组件库由项目A直接引用。那么每次开打项目A获取最新后,同时还得打开项...

    陈珙
  • 经典SQL语句大全之提升

    1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1<>1(仅用于S...

    陈珙
  • 经典SQL语句大全之数据开发

    1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Str...

    陈珙
  • NuGet 无法连接到远程服务器-解决方法

    安装EF4.3的步骤是首先安装VS扩展 NuGet,然后再使用NuGet安装EF程序包

    跟着阿笨一起玩NET
  • Django之forms组件

      我们在写注册页面时,之前只是提交了数据,然后就保存了数据,后端根本就没有对数据进行校验,比如价格写的不是纯数字也让保存,这肯定是不行的,在前端是可以校验的,...

    py3study
  • C#学习笔记系列之HelloWorld入门001

    在我的工作中需要对C#的一些问题进行攻克,所以我需要学习C#,在此我也分享我的笔记,一方面能记录知识点,另一方面也可以丰富社区的文档。C#主要有三种应用,分别是...

    算法发
  • Linux知识之启动外部应用方法

    一般启动外部应用的方法有system,exec与popen。它们功能相似但使用上有所差别。

    Qt君
  • MOS与CMOS

    MOS晶体管是金属—氧化物—半导体场效应管,有三个极,分别是S极、G极、D极,即源极、栅极、漏极,为电压控制,也被称为场效应管FET(Field-effect-...

    根究FPGA
  • 通过恢复GRUB来破解VCSA 6.0的ROOT密码

    VCSA 6.0与VCSA 5.5不太一样,尤其是在关于ROOT密码恢复这块,以前可以直接恢复,但是现在暂时还没法直接这样做恢复,因为在启动时单用户模式里关于G...

    孙杰
  • XGBoost 在 Windows 10 和 Ubuntu 上的安装

    关于什么是 XGBoost,我在这里不再解释,如果有时间的话再写一篇文章来解释,在数据科学里非常有用。大家可以参考 Tianqi Chen 的论文 XGBoos...

    Alan Lee

扫码关注云+社区

领取腾讯云代金券