Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >NuGet的使用心得

NuGet的使用心得

作者头像
陈珙
发布于 2018-09-12 02:11:24
发布于 2018-09-12 02:11:24
1.6K0
举报

前言

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

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

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C# 搭建自己的NuGet服务器,上传自定义NuGet包
以上就成功部署了自己的NuGet服务器了。关于.nupkg文件其实就是程序的安装包压缩文件,它包含了程序包的版本信息,dll及相关的外部依赖,NuGet安装包时会进行自动解压。因此上传至NuGet服务器Packages目录的只需要.nupkg文件。
zls365
2021/04/23
1.7K0
C# 搭建自己的NuGet服务器,上传自定义NuGet包
Vs 中关于项目中的某 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”
   首先出现这个bug的是在我的vs2017社区版的ide上,这两天使用了出现了一个非常神奇的问题,就是我程序中的nuget包总提示找不到源文件,并且我点击Nuget还原的话还一直提示着一个问题。
追逐时光者
2019/08/28
3.9K0
Vs 中关于项目中的某 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”
svn协同开发下的dll版本管理最佳实践
作为一名开发人员,常常碰到的一个问题是,当使用svn签出一份最新代码时,经常不能一次编译通过,导致花费大量时间去解决编译问题,这里碰到的问题一般可以分为三类:
少羽大怪兽
2019/09/11
1.1K0
svn协同开发下的dll版本管理最佳实践
自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference
发布于 2018-04-24 10:03 更新于 2018-06-29 08:52
walterlv
2018/09/18
1.8K0
自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference
2018-8-24-快捷调试Nuget包
我们有一个超级基础的库A,我们的多个公共组件B,C,D,和最终产品E都依赖于库A。
黄腾霄
2020/06/10
9660
NuGet程序包管理器
 开发过程中几乎不可避免地要使用第三方包,当然可以不用包管理器。对于开源的项目可以直接引用源文件,预先构建好了的库也可以直接引用dll。但是用nuget之类的包管理器可以更方便地进行管理,比如最基本的安装、更新、卸载功能可以直接通过命令行或者IDE来操作。
鱼找水需要时间
2024/03/18
1850
NuGet程序包管理器
一文了解Nuget的使用
官网定义:NuGet是.NET的软件包管理器(免费)。NuGet客户端工具提供了生成和使用软件包的能力。NuGet Gallery 是所有软件包作者和消费者都使用的中央软件包存储库。
李明成
2020/02/12
1.4K0
NuGet的使用和服务搭建
   最近部门,在开发的时候遇到一个问题,现在有项目A B C三个项目,项目B和C分别提供了组件库由项目A直接引用。那么每次开打项目A获取最新后,同时还得打开项目B C获取最新然后编译一次。抛开设计方面的问题,假如以后还多了项目E F G,引用和被引用,那么打开一个项目想编译一次,还得同时打开N个项目。当时把问题反馈后,有人建议使用NuGet。
陈珙
2018/09/12
1.4K0
NuGet的使用和服务搭建
Nuget的使用(下载和使用package)
对于.NET(包括.NET Core),Microsoft支持的代码共享机制是NuGet,它定义了.NET程序包的创建,托管和使用方式,并为每个角色提供了工具。
Centy Zhao
2020/04/09
4.8K0
ABP入门系列(12)——如何升级Abp并调试源码
源码路径:Github-LearningMpaAbp 1. 升级Abp 本系列教程是基于Abp V1.0版本,现在Abp版本已经升级至V1.4.2(截至至文章发布时间),其中新增了New Feature,并对Abp做了相应的Enhancements,以及Bug fixs。现在我们就把它升级至最新版本,那如何升级呢? 下面就请按我的步骤来将Abp由V1.0升级至V1.4.2。 1.1. 过滤Abp Nuget包 VS打开解决方案文件,右键解决方案(不是某个项目),选中【管理解决方案的Nuget程序包(N)..
圣杰
2018/01/11
2K0
ABP入门系列(12)——如何升级Abp并调试源码
NuGet包管理平台
我们做一个项目,除了自己的代码文件之外,实际上还要引用诸多代码文件,这些文件可能是我们自己封装的底层框架代码,或者为了完成某个功能而引用的工具类文件等等。在.NET里边,这些可被引用的,负责完成某个可复用功能的代码,我们可以封装为动态链接库(Dynamic Link Library,.dll),也可以通俗说打包,在需要的地方,我们把这个包引用到项目中,就可以使用其功能。NuGet就是一个专门管理这些包的平台,所有开发者可以将自己的优秀代码打包上传到这个平台,供全球开发者使用。并且,在这个平台上,我们可以查看到这个包的依赖,比如这个包依赖.NET Framework 4.5的环境,那我们就知道自己的项目可不可以使用这个包,或者这个包可以还要依赖一些另外的包,我们可以清楚的了解到这一整个层级关系。
宿春磊Charles
2022/06/17
1.3K0
NuGet包管理平台
win10 uwp 上传Nuget 让别人用我们的库 Nuget下载打包Nuget上传命令行使用Nuget
我们的开发经常使用别人的dll,那么我们需要每次都从网上下载,然后复制到我们的项目, 而不知道我们的dll是否安全? 当我们的库更新的时候,我们又需要从网上搜索,这样不好,于是我们就用Nuget,Nuget可以 让我们把我们做出来的东西发在网上让别人下载,需要搜索名称就可以下载,然后更新会通知 本文主要讲我们如何制作一个库上传Nuget,让别人可以使用,做法很简单,先下载软件后制作,上传。
林德熙
2018/09/18
9620
win10 uwp 上传Nuget 让别人用我们的库
            Nuget下载打包Nuget上传命令行使用Nuget
使用 NuGet 管理项目库
共享和重用代码是一个很大的挑战。 不相信? 请随便走进一间中型或大型工作室,问问他们有多少日志记录库。 访问多家公司后,您将发现他们拥有比例非常高的内部日志记录库,而这些库中有一些非常不错,例如,Log4Net、NLog 和 Error Logging Modules and Handlers(即 ELMAH)。 当一位开发人员开始新项目时,他将面对一张空白的画布。 他如何去发现这些有用的库? 如何将库集成到当前项目中并管理库的依赖项和更新呢? ELMAH 就是一个非常有用的库,是由开发人员自己编写的。 E
张善友
2018/01/29
1.6K0
NuGet 使用自定义本地类库目录
在项目中使用 NuGet 作为第三方类库管理器是非常方便的, NuGet 默认会在解决方案的目录下建立一个名为 packages 的目录, 把解决方案所需的第三方类库都放到 packages 目录下, 解决方案下所有的项目都引用 packages 目录内的类库, 对于单个解决方案来说, 非常不错。
beginor
2020/08/10
6110
NuGet 使用自定义本地类库目录
.net 知新:【4】NuGet简介和使用
在包管理以前我们在项目中引用第三方包通常是去下载dll放到项目中再引用,后来逐渐发展成各种包管理工具,nuget就是一种工具,适用于任何现代开发平台的基本工具可充当一种机制,通过这种机制,开发人员可以创建、共享和使用有用的代码。 通常,此类代码捆绑到“包”中,其中包含编译的代码(如 DLL)以及在使用这些包的项目中所需的其他内容。 Linux 我们可以使用apt、yum来安装软件,js 可以使用npm来搭建下载,Java 有maven管理包,而对于.net nuget就是同样效果和机制的工具。
SpringSun
2021/08/13
2.2K0
.net 知新:【4】NuGet简介和使用
Visual Studio项目引用出现感叹号怎么办?
今天换了台电脑,就把笔记本上的项目拷贝到了台式机上, 但是我没有拷贝解决方案整个文件夹,因为其中项目太多了,我就把其中一个项目的文件夹直接拷贝到电脑上,然后就出现了下面的情况。
zls365
2021/03/16
4.1K0
C# 离线使用nuget
正常在我们使用nuget进行程序集下载的时候,直接在vs编辑器中直接进行操作,下载自己想要的各种程序,但是某些时候,在进行一些办公时,公司要求本机编码不能进行联网操作,那么这种情况下我们怎么进行nuget程序集下载了。
用户9127601
2021/11/01
9880
获取 Nuget 版本号
在 Nuget 中没有 -version 和 -v 和 --version 等写法,只需要直接输入 nuget 在第一行就会显示版本号
林德熙
2019/03/13
1.9K0
visualsvn安装教程_visualsvn使用教程
2、 客户端安装包:TortoiseSVN-1.6.2.16344-win32-svn-1.6.2.msi
全栈程序员站长
2022/09/20
2.4K0
.NET Core系列 : 2 、project.json 这葫芦里卖的什么药
.NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门 介绍了.NET Core环境,本文介绍.NET Core中最重要的一个配置文件project.json的相关内容。我们可以使用.NET Core 的dotnet 命令行接口(CLI)dotnet new命令创建一个应用,也可以用Visual Studio 2015 update 3创建一个应用,他们都有一个project.json ,它是项目的配置文件,类似之前的*.csrpoj文件。Project.json 是一个新的项目文件
张善友
2018/01/22
2.1K0
相关推荐
C# 搭建自己的NuGet服务器,上传自定义NuGet包
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档