vs2017 安装 nugetnuget工具有哪些

[转载]关于VS2012配置NUGET以及读取NUGET包的一些心得
1. NuGet是什么?
NuGet is a Visual Studio 2010 extension that makes it easy to add,
remove, and update libraries and tools in Visual Studio projects
that use the .NET Framework. This topic lists documentation that
will help you use NuGet packages and create your own.
NuGet 是一个Visual Studio的扩展。在使用Visual
Studio开发基于.NET
Framework的应用时,NuGet能够令你在项目中添加、移除和更新引用的工作变得更加快捷方便。
这就是说: 我们往往在开发项目里,会使用一些第三方的dll, 如:Newtonsoft.Json.dll
(它为我们提供了进行序列化和反序列化解决方案, 很有用,也很稳定,还很有名气)。
但是,我们往往也面临随着项目升级,对这些引入的第三方插件进行升级的可能和必要。
比方说,原本的项目是vs2008 + C# 3.5 实现的,并引入了Newtonsoft.Json.dll 2.0版本,
现在对项目升级成了Vs 2010 + C# 4.0。
你想或者必须将旧版本升级到最新版本才能工作或者仅是保持版本上的一致;&同时,Newtonsoft
提供Json.Net对C# 4.0 支持版本,即:Newtonsoft.Json.dll 4.0。
你就需要到官网或者通过Google 去寻找它的最新版本,下载,解压,然后替代等操作。
似乎看上去,也没多少复杂的事情,&也习以为常了。谁叫咱引用别人的东西,只能跟着走了,习惯了这样的更新,总比自己写更快吧。
&现在,NuGet 将这个过程系统化,令你可以更加方便的查找你要的第三方的dll,
同时,还可以为你提供自动或者手动更新,而无需你在人肉搜索与更新了。
  为什么要使用NuGet
  简单的说NuGet可以是我们的工作更方便,当我们的项目里要引用到的一些库时候,比如JQuery、Newtonsoft.Json、log4net等,我们需要从网上下载这些库,然后依次拷贝到各个项目中,当有的类库有更新时又不得不再重复一遍很是繁琐
,这时就可以考虑使用NuGet来帮我们管理和更新这些类库,而且更新类库时会自动添加类库的相关引用,方便至极。当然网上一些我们常用的类库更新频率不是很高而且即便出了新版本我们也没必要总是保持最新,故这点对我们的帮助比较有限,个人认为NuGet最大的好处在于可以搭建自己的类库服务器,想想一下吧,在一些较大些的公司里面有很多的项目,然后其中有一些是整个组,甚至整个公司通用的类库,当这些类库有更新后我们需要依次拷贝到我们的项目,甚至于有时候我们自己都搞不清楚各个项目里的版本是否一致,有时偶尔一两个项目忘了复制更新出现莫名其妙的错误,为此头疼不已,现在有了NuGet,世界从此而不同。
&在VS2010中,NUGET管理包需要手动安装,但是在VS2012中,安装的时候就自动帮你集成上去了,所以不需安装
2010中需要安装以上两个包,才可以用哦。
这次的配置NUGET包任务是在2012的,所以直接说主题吧:
1. 首先下载 包包管理器&,顾名思义,包包管理器可以用来创建新的类库包,也可以浏览已经创建好的类库包
2. 下载完成后,双击&NuGetPackageExplorer.application
进行安装,安装完成后会在桌面上生成一个NuGet Package Explorer 的快捷方式
 3. 双击NuGet Package Explorer出现启动界面,选择Create a new
package(Ctrl+N)创建一个新包
  4. 选择菜单&Edit&&&Edit
Package Metadata&(或者&CTRL
+ K) 编辑包包信息
  这里可以编辑类库包的信息和添加类库、程序集的引用解释下几个比较重要的字段
  Id:用于定位类库包的唯一标示,如在命令行下执行 Install-Package MyPackage
这里的MyPackage就是包包的Id值
  Version:类库的版本号,这里建议和程序集的真实版本号保持一致,以免发生混淆
  Dependencies:此类库依赖的程序集,根据实际情况添加依赖类库的Id和版本号,若无留空即可,这里需要注意下填写的依赖类库需要在NuGet服务器上能找到,否则无法完成自动引用添加
  Framework assemblies:依赖的Framework 程序集,根据实际需要选择即可,一般无需设置
  除以上四项以外其他属性根据实际情况修改即可,若自己用不修改也中,不过为了使用方便还是建议把类库描述(Description)填写下
  5. 编辑好包包信息后接下来添加DLL到包包中
  可以选择 右键--&Add Existinng File... 选择dll添加,也可以直接拖拽DLL到 Package
contents 窗口,此例选择拖拽方式
  直接拖拽dll到窗口后,会出现提示:是否将&Winista.HtmlParser.dll放到lib
文件夹下,一般我们选择是
  6. DLL添加完成后,快捷键Ctrl + K 修改包包信息Id为Winista.HtmlParser,版本号为1.8.0
  7. 信息修改和dll都添加完毕后,选择File --& Save(或Ctrl + S)将文件进行保存,默认文件名为Id +
版本号.nupkg
  8. 完成保存后如需要发布到网上,选择File--& Publish...(或Ctrl + P)
  默认的发布地址是官网,发布 Key需要到官网去注册一个账号,然后就可以得到,这里不在复述,若无需发布直接关闭即可
  ps:这里没有讲述如何打包项目文件,一般情况下我们自己将项目文件编译成DLL然后使用图形化界面打包即可满足需求,若实际工作需要高度集成完全自动化操作可自行去研究下官方文档
  添加DLL默认会添加Lib文件夹,额外的菜单上还有很多.net文件夹,src等文件夹,这些文件夹只是对文件上的一个物理上的划分而已,只是为了帮助我们做好文件分类,没有其他的用途,dll文件可以随便放置,不过为了规范还是建议按照通常习惯来放置。
以上就是配置NUGET包的基本流程,我的问题出现在什么地方?可能大家会觉得这个问题很低端。。好吧,我本身其实就是个菜鸟,这个问题是出现在引用这个NUGET包上,我们还是按照步骤来说
1.右击项目引用,如图所示出现该图片,点击
进入管理主界面
2.点击设置,进入
&点击添加,进入选择界面,这个时候,我遇到的问题出现了,由于选择源的时候,我每次都定位到了包文件(例:D:6998Package.1.0.0.nupkg),导致引用完成后出现如此的情况
这个问题让我蛋疼不已!
后来才发现,正确的方法是将生成的文件,直接放到一个文件夹中,然后源选择应该直接定位到文件夹,(例如:D:test),这样的话,就大功告成
如此,我们变可以使用自己的NUGET包了
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。本篇blog包含使用TFS2017,VS2017等平台和工具搭建和使用NuGet库等基本过程,为团体提供更加自动化和高效的研发活动支持。
作为以产品线或者以专属业务为扩展的项目类型的软件研发团体,都会有自己的基础软件框架和功能模块的软件产品智力资产库。团队无形智力资产的积累和最大化使用,不仅是组织的软件成熟度能力的体现,更是软件企业或团体研发成本和经济效益的最大化平衡的有效手段。在研发团队中,开发一个大型的项目或产品通常会使用许多的公共类型的资源以及企业内部的一些基础资源,比如开源的前后端框架、脚本、DLL文件等等。这些被引用的资源之间也存在着诸多的依赖和版本差异,如果没有一个合理的项目库管理机制和平台,团队之间处理这些繁琐的活动要浪费许多的时间和精力。
在微软的TFS产品中,本身作为一个ALM过程的基础支撑平台,引入了包管理的功能支持。特别是基于微软开发平台的软件团队,针对公共的资源使用,我们大量使用提供的共享资源,但是团体内部的公共代码类库我们通常不要放到公网上去,在内部使用通常还是使用人工复制拷贝的模式进行使用,当数量大到一定程度,由于多个版本,多研发人员共同协作,产生了大量的资源的浪费。比如,一个研发人员打开一个项目进行工作,通常会因为软件包之间的各种依赖,导致程序无法运行调试,通常要花费许多的时间来查找和整理这些共享的类包。
下面记录了一个搭建和使用私有NuGet托管库的一些过程,希望可以为这方便有需求的朋友和团体提供一些有价值的参考。
1、 在TFS2017中配置包管理库
首先在TFS Web Portal中创建一个新的托管包源。
下载nuget.exe工具,备用。
完成后我们的一个私有的NuGet托管库就已经完成了,后续是如何发布我们的类包到私有库中。
2、 制作类包
首先我们准备一个非常简单的类库项目。并包含一个对JQuery共有类库的一个应用,在该示例中不太合理,目的是后面演示一下私有类库对公有类库的一个依赖使用。
打开上面创建的类库项目的所在文件夹,并把nuget.exe程序拷贝到该目录。并在该目录启动cmd,执行命令:nuget.exe spec,生成nuspec配置文件。
&&&&&& 执行命令:nuget.exe pack ClassLibrary1\ClassLibrary1.csproj ,生成nugeg包文件。
按照前面下载nuget.ext界面中的命令,执行:nuget.exe sources Add -Name "PCL" -Source "http://tfs/tfs/DefaultCollection/_packaging/PCL/nuget/v3/index.json" 添加源。
执行:nuget.exe push -Source "PCL" -ApiKey VSTS ClassLibrary1.1.0.0.0.nupk,推送自制包到私有托管库中。
推送成功后,可以看到TFS的WebPortal中的如下信息,包括如何获取包命令参数,已经相关的基本信息,如本示例中对JQuery的依赖。
3、 使用私有类包
准备一个简单的Window桌面应用程序。
在VS的&程序包管理设置&中添加上面创建的私有托管NuGet库。
在项目的&管理NuGet程序包&中,为项目添加自制包的应用。
完成后,项目中添加如下的引用和资源包,并使用类库中提供的方法。
企业或团体的内部共享资源包通过一定规划,按照2或3种维度属性,合理组织和权限管理后,并对开发团队进行简单的指导和培训,对于开发周期过程中提供智力资产的复用和提升研发效率会有立竿见影的效果。
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
阅读(...) 评论()中国领先的IT技术网站
51CTO旗下网站
Nuget工具的安装和实际项目基本用法
可以通过在控制台Package Manager Console 输出目录管理库 首先在在线的http://www.nuget.org/packages目录下找到对应库初始化路径 类似找到Json.NET http://www.nuget.org/packages/Newtonsoft.Json初始化路径为:我们能够现在操作都是基于在线Nuget官方数据源Package操作.当然我们可以PAckage数据源设置成本地 找到绿色按钮Package Manager Settings:
作者:chenkai来源:博客园| 10:59
Nuget 这个工具最先是在MIX11上开始让我注意.不知道当时看MIX同学是否注意到一个小细节.-就是所有MIX11 Code演示环节中MS开发人员都使用Nuget.本篇介绍一些Nuget安装和一些在实际项目中基本用法.
首先 解释一下Nuget Tool是什么?
NuGet 是一种 Visual Studio 扩展工具,它能够简化在 Visual Studio 项目中添加、更新和删除库(部署为程序包)的操作。 NuGet 程序包是打包成一个文件的文件集,扩展名是 . nupkg,使用开放打包约定 (OPC) 格式.
在没有使用Nuget工具之前.如果我们要在一个普通.NET项目中添加一个库的引用.最简单的方式就是添加DLL引用的方式实现第三方代码库引用.通过下载解压.添加引用操作.如果在发布时还需要为项目依赖项进行大量手工整理.是否发现.在DLL引入到发布整个过程存在一个管理&真空&状态.如果要向其他开发者或组织共享我们代码.是否意味更复杂的操作.着恰恰也是Nuget所做的.
安装Nuget有两种方式.方式一打开Visual Studio 2010,打开Tool-&Extension Manager窗体.选择Online Gallery,在搜索框中输入NuGet看到:
点击Download下载会自动安装,另外一种方式打开http://www.nuget.org/直接下载安装文件NuGet Manager. 点击运行开始安装:
选择安装工具 下一步:
安装完成.如果在安装过程出现错误货没有正确安装会在安装界面提示:
关于安装出错后通过查看Install Log 确定出错的原因:
如果觉得麻烦.也可以不看.直接找到上图的目录删除掉NuGet Package Manager文件夹,重新安装Nuget Tool即可.安装完成后可以创建一个Windows phone Application 打开Tool-&Library Package Manager-&Package Manager Console:
可以通过在控制台Package Manager Console 输出目录管理库 首先在在线的http://www.nuget.org/packages目录下找到对应库初始化路径 类似找到Json.NET http://www.nuget.org/packages/Newtonsoft.Json初始化路径为:
输入:Install-Package Newtonsoft.Json
如果对应库文件较大.则会在Visual Studio 右下角提示有下载进度.安装完成后:
可以在当前项目目录中看到已经成功添加到引用中:
可以引用管理手动添加库文件.在解决方案的References引用可以看到:
多了一个Manage Nuget Packages打开管理窗体能够实现已经安装库文件管理:
Nuget提供基于 Windows PowerShell 的控制台窗口(称作程序包管理器控制台)以及一组 Windows PowerShell 命令与 NuGet 进行交互。 Windows PowerShell 是基于 .NET 的脚本语言和命令行 shell,非常适合组成命令集,并能够处理对象.当然PowerShell提供强大支持可以Package Manager Console通过指令直接管理卸载库 例如卸载已经引用Json.NET库输入:Unstall-Package Newtonsoft.Json卸载.如果想看到当前项目已经引用的Package在Console 直接通过指令的方式获取 Get-Package:
看到当前项目中已经使用库文件 以及版本其他信息.如果已经引用的组件存在新的版本 依然可以通过Update-Package批量更新已经引用的库:
命令尝试将每个程序包都更新到最新版本,如果任何程序包包含重大改变,这会是一项非常重大的操作。 在多数情况下,您仅希望将各程序包更新至最新的修补程序版本。 这叫&安全&更新,前提是具有较大内部版本号或修订号(但具有相同的主版本号和次版本号)的程序包能够向后兼容。 仅添加 Safe 标记以执行安全更新:例:Update-Package &Safe
当然我们能够现在操作都是基于在线Nuget官方数据源Package操作.当然我们可以PAckage数据源设置成本地 找到绿色按钮Package Manager Settings:
打开并在一个指定本地目录下添加一个本地Package数据源:
能在Console看到指定的数据源设置分类LocalPackages:
当然对于组织结构更大的公司和开发团队.如果简单的使用SVN和Git管理方式依然不容易控制不同库版本和对外共享的控制.Nuget针对企业用户提供可以在企业内部搭建一个Nuget Server的形式来统一管理内部开发团队库共享. 大大提高开发效率.【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条头条头条头条头条
24H热文一周话题本月最赞
讲师:227267人学习过
讲师:31004人学习过
讲师:14972人学习过
精选博文论坛热帖下载排行
本书是为那些对Web开发感兴趣的读者而编写的。ASP(Active Server Pages)是微软公司在Web领域的又一次突破,它打破了以往只能由专业人员来...
订阅51CTO邮刊

我要回帖

更多关于 vs2017 nuget发生错误 的文章

 

随机推荐