前言

上星期发布了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插件结合发布和获取最新,应该是可以实现的。

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

NuGet的使用心得的更多相关文章

  1. mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理

    1.mvc5+ef6+Bootstrap 项目心得--创立之初 2.mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理 3.mvc5+ef6+Bootstrap 项目心得--WebG ...

  2. mvc5+ef6+Bootstrap 项目心得--创立之初

    1.mvc5+ef6+Bootstrap 项目心得--创立之初 2.mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理 3.mvc5+ef6+Bootstrap 项目心得--WebG ...

  3. Nuget的使用

    前言 最近看到园子上有关于NuGet (读音:new get)的使用,所以心血来潮也跟着学习做了一下,觉得很流b哦.于是也就记一下自己的学习心得(并非一味的重复轮子,只是觉得他人做的写的就是对的,自己 ...

  4. 还在用NuGet吗?大哥FuGet了解一下

    前言 你可能不知道是,NuGet已经发布10年了,从 Visual Studio 2010 第一次官方集成NuGet以来,这10年间有聚集了超过 14万 的包,这些包有超过 150万 的版本提供,大约 ...

  5. [转]mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理

    本文转自:http://www.cnblogs.com/shootingstar/p/5629668.html 1.mvc5+ef6+Bootstrap 项目心得--创立之初 2.mvc5+ef6+B ...

  6. 如何使用MiniProfiler(附最新版MiniProfiler使用心得)

    MiniProfiler这个工具早就久仰大名,不过之前一直没有动力去用,正好最近手上有个ASP.NET MVC的项目,正好拿来试试手,下面是使用最新的4.0.138版本的心得体会以及踩到一些小坑的解决 ...

  7. Visual Studio容器项目工程化心得

    引言 关注博主的网友会看到我使用ASP.NET Core 容器化部署企业级项目的过程, 回想到开发过程中,鄙人有一些工程化心得, 分享给同学们. 项目工程化 因为本项目涉及单元测试Project.容器 ...

  8. 基于 Vue.js 之 iView UI 框架非工程化实践记要 使用 Newtonsoft.Json 操作 JSON 字符串 基于.net core实现项目自动编译、并生成nuget包 webpack + vue 在dev和production模式下的小小区别 这样入门asp.net core 之 静态文件 这样入门asp.net core,如何

    基于 Vue.js 之 iView UI 框架非工程化实践记要   像我们平日里做惯了 Java 或者 .NET 这种后端程序员,对于前端的认识还常常停留在 jQuery 时代,包括其插件在需要时就引 ...

  9. .Net Core 三大Redis客户端对比和使用心得

    前言 稍微复杂一点的互联网项目,技术选型都可能会涉及Redis,.NetCore的生态越发完善,支持.NetCore的Redis客户端越来越多, 下面三款常见的Redis客户端,相信大家平时或多或少用 ...

随机推荐

  1. Quartz1.8.5例子(十一)

    /* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...

  2. matlab学习笔记(一)单元数组

    matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x)  :取最大的整数 ceil(3.18)=4,ceil( ...

  3. SEO 网站URL优化

    很多人都知道URL对SEO的重要之处,但是很多站点却忽略了站点的路径优化.今天本人在这里写几点关于优化路径小篇! 本人结论出关于站点URL在优化中其实也是占为一个相当重要的一个优化!优化站点的URL本 ...

  4. VC下载文件 + 显示进度条

    在codeproject里找了许久,发现这样一个VC下载文件并显示进度条的源码,于是添加了些中文注释: 1.下载线程函数: UINT DownloadFile(LPVOID pParam) { CWn ...

  5. 17.1 Replication Configuration 复制配置

    17.1 Replication Configuration 复制配置 17.1.1 How to Set Up Replication 17.1.2 Replication Formats 17.1 ...

  6. Oracle core06_latch&lock

    lock and latch 在oracle中为了保护共享资源,使用了两种不同的锁机制lock和latch,这两种锁有明显不同点: 1,lock和pin,采用的是队列的方式,先来先服务的策略,latc ...

  7. wpa_supplicant对wep,wpa,wpa2的psk和隐藏ap的scan_ssid扫描配置

    # 请不要修改下面这一行内容,否则将不能正常工作ctrl_interface=/var/run/wpa_supplicant # 确保只有root用户能读取WPA的配置ctrl_interface_g ...

  8. 单实例 winform zz

    (引用了 Microsoft.VisualBasic.ApplicationServices)SingleInstanceApplicationWrapper.cs using System.Wind ...

  9. I Hate It HDOJ---1754

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  10. zoj 3620 Escape Time II

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4744 Escape Time II Time Limit: 2 Seconds ...