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插件结合发布和获取最新,应该是可以实现的。
如果园子里的朋友有哪位曾经做过,可以分享一下心得。
NuGet的使用心得的更多相关文章
- mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理
1.mvc5+ef6+Bootstrap 项目心得--创立之初 2.mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理 3.mvc5+ef6+Bootstrap 项目心得--WebG ...
- mvc5+ef6+Bootstrap 项目心得--创立之初
1.mvc5+ef6+Bootstrap 项目心得--创立之初 2.mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理 3.mvc5+ef6+Bootstrap 项目心得--WebG ...
- Nuget的使用
前言 最近看到园子上有关于NuGet (读音:new get)的使用,所以心血来潮也跟着学习做了一下,觉得很流b哦.于是也就记一下自己的学习心得(并非一味的重复轮子,只是觉得他人做的写的就是对的,自己 ...
- 还在用NuGet吗?大哥FuGet了解一下
前言 你可能不知道是,NuGet已经发布10年了,从 Visual Studio 2010 第一次官方集成NuGet以来,这10年间有聚集了超过 14万 的包,这些包有超过 150万 的版本提供,大约 ...
- [转]mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理
本文转自:http://www.cnblogs.com/shootingstar/p/5629668.html 1.mvc5+ef6+Bootstrap 项目心得--创立之初 2.mvc5+ef6+B ...
- 如何使用MiniProfiler(附最新版MiniProfiler使用心得)
MiniProfiler这个工具早就久仰大名,不过之前一直没有动力去用,正好最近手上有个ASP.NET MVC的项目,正好拿来试试手,下面是使用最新的4.0.138版本的心得体会以及踩到一些小坑的解决 ...
- Visual Studio容器项目工程化心得
引言 关注博主的网友会看到我使用ASP.NET Core 容器化部署企业级项目的过程, 回想到开发过程中,鄙人有一些工程化心得, 分享给同学们. 项目工程化 因为本项目涉及单元测试Project.容器 ...
- 基于 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 时代,包括其插件在需要时就引 ...
- .Net Core 三大Redis客户端对比和使用心得
前言 稍微复杂一点的互联网项目,技术选型都可能会涉及Redis,.NetCore的生态越发完善,支持.NetCore的Redis客户端越来越多, 下面三款常见的Redis客户端,相信大家平时或多或少用 ...
随机推荐
- Quartz1.8.5例子(十一)
/* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...
- matlab学习笔记(一)单元数组
matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x) :取最大的整数 ceil(3.18)=4,ceil( ...
- SEO 网站URL优化
很多人都知道URL对SEO的重要之处,但是很多站点却忽略了站点的路径优化.今天本人在这里写几点关于优化路径小篇! 本人结论出关于站点URL在优化中其实也是占为一个相当重要的一个优化!优化站点的URL本 ...
- VC下载文件 + 显示进度条
在codeproject里找了许久,发现这样一个VC下载文件并显示进度条的源码,于是添加了些中文注释: 1.下载线程函数: UINT DownloadFile(LPVOID pParam) { CWn ...
- 17.1 Replication Configuration 复制配置
17.1 Replication Configuration 复制配置 17.1.1 How to Set Up Replication 17.1.2 Replication Formats 17.1 ...
- Oracle core06_latch&lock
lock and latch 在oracle中为了保护共享资源,使用了两种不同的锁机制lock和latch,这两种锁有明显不同点: 1,lock和pin,采用的是队列的方式,先来先服务的策略,latc ...
- wpa_supplicant对wep,wpa,wpa2的psk和隐藏ap的scan_ssid扫描配置
# 请不要修改下面这一行内容,否则将不能正常工作ctrl_interface=/var/run/wpa_supplicant # 确保只有root用户能读取WPA的配置ctrl_interface_g ...
- 单实例 winform zz
(引用了 Microsoft.VisualBasic.ApplicationServices)SingleInstanceApplicationWrapper.cs using System.Wind ...
- I Hate It HDOJ---1754
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- zoj 3620 Escape Time II
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4744 Escape Time II Time Limit: 2 Seconds ...