NuGet学习笔记(1)——初识NuGet及快速安装使用

关于NuGet园子里已经有不少介绍及使用经验,本文仅作为自己研究学习NuGet一个记录。

  初次认识NuGet是在去年把项目升级为MVC3的时候,当时看到工具菜单多一项Library Package Manager,右键项目文件多了一项Manage Nuget Packages...,这是个神马玩意儿,当时是一头雾水,后台查了些资料才知到NuGet是 Visual Studio的一个扩展,引用dudu的话来说就是管理程序的包包,可以参考msdn上这篇文章使用 NuGet 管理项目库以及咱们博客园站长dudu写的程序员,用NuGet管理好你的类库,有些类似java中常用的maven  

  为什么要使用NuGet

  简单的说NuGet可以是我们的工作更方便,当我们的项目里要引用到的一些库时候,比如JQuery、Newtonsoft.Json、log4net等,我们需要从网上下载这些库,然后依次拷贝到各个项目中,当有的类库有更新时又不得不再重复一遍很是繁琐 ,这时就可以考虑使用NuGet来帮我们管理和更新这些类库,而且更新类库时会自动添加类库的相关引用,方便至极。当然网上一些我们常用的类库更新频率不是很高而且即便出了新版本我们也没必要总是保持最新,故这点对我们的帮助比较有限,个人认为NuGet最大的好处在于可以搭建自己的类库服务器,想想一下吧,在一些较大些的公司里面有很多的项目,然后其中有一些是整个组,甚至整个公司通用的类库,当这些类库有更新后我们需要依次拷贝到我们的项目,甚至于有时候我们自己都搞不清楚各个项目里的版本是否一致,有时偶尔一两个项目忘了复制更新出现莫名其妙的错误,为此头疼不已,现在有了NuGet,世界从此而不同。

  安装NuGet扩展

  要使用NuGet首先需要安装它(在安装了MVC3的系统上已自动安装了NuGet)

  1. 点击 工具-->扩展管理器(R)...-->右上角搜索框输入NuGet

  2. 点击 NuGetPackage Manager 项上面的下载按钮开始下载NuGet

  3. 下载完成后出现安装页面,点安装开始安装

  4. 很快安装完成,然后点击关闭完成整个安装

  5. 安装完后NuGet暂时不能用,需要重新启动下VS才行,重启后完毕后打开 扩展管理器(R)... 在已安装的扩展里可以看到NuGet Package Manager已经安装好了

  使用NuGet下载需要的类库

  1. 打开NuGet管理界面

  2. 出现如下界面,可以在里面找自己想要的类库也可以在右上角搜索里面输入关键字查找自己想要的类库,找到合适自己的类库后点install进行安装

  3. 这里我们选择安装Json.Net,点击安装好出现组件下载界面

  4. 下载完成后会出现提示将类库安装到什么项目,这里我们选择安装到TestConsole项目

  5. 安装完成后可以看到已经安装的Josn.Net显示一个已安装的小对勾

  6. 打开项目引用可以看到我们刚选择的类库Newtonsoft.Json已经自动添加到项目引用中

  使用命令行管理你的类库

  1. NuGet提供了命令行安装方法,在菜单中选择Package Manager Console,打开命令行控制台

  2. 出现NuGet控制台界面,默认类库源(Package source)为官方站点,也可以指向自己搭建的本地或内网站点,Default project表示默认将下载的类库添加到那个项目的引用中

  3. NuGet控制台有几个常用命令

  Get-Package 获取当前项目已经安装的类库

  Install-Package 安装指定类库,命令格式如下:Install-Package 类库ID,如Install-Package Newtonsoft.Json 这里需要注意的是类库的ID是唯一的,指向命令后会自动搜索指定类库源里指定ID类库,若找到则自动下载并添加引用,找不到则会出现找不到类库的提示

  Uninstall-Package 卸载指定类库,命令格式如下:Uninstall-Package 类库ID,如Uninstall-Package Newtonsoft.Json 

  Update-Package 更新指定类库,命令格式如下:Update-Package 类库ID,如Update-Package Newtonsoft.Json 

  ps:刚开始不熟悉时可以使用界面方式下载和更新类库,有一定经验后还是建议使用控制台添加、更新类库这样很方便,由于使用控制台需要知道类库的准确ID,可以到http://www.nuget.org/packages这里去查找,把自己常用的ID记录下方便以后使用

转载于:https://www.cnblogs.com/zhwl/p/3279541.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 打印二叉树_java – 如何打印二叉树图?

我创建了简单的二叉树打印机。你可以根据需要使用和修改它,但它还没有优化。我认为很多东西都可以在这里改进;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class BTreePrinterTest {private static Node test1() {Node …

ZOJ 2562 More Divisors

又是个水题,刚刚开始没有用搜索,因为对于反素数有: n2^t1*3^t2^5^t3*7^t4..... 这里有 t1>t2>t3>t4。 而且相同的因数的情况下,素数越不同越好。 哪知道这个方法错了! 。 看来还得中规中矩得用dfs。 我觉得还…

springMVC使用注解方式进行页面跳转

<!--控制层-->package cn.org.spartacus.spring; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;ControllerRequestMapping("…

java for 和foreach_关于java中for和foreach循环

for循环中的循环条件中的变量只求一次值&#xff01;具体看最后的图片foreach语句是java5新增&#xff0c;在遍历数组、集合的时候&#xff0c;foreach拥有不错的性能。foreach是for语句的简化&#xff0c;但是foreach并不能替代for循环。可以这么说&#xff0c;任何foreach都能…

将datatable导出为excel的三种方式(转)

一、使用Microsoft.Office.Interop.Excel.DLL 需要安装Office 代码如下&#xff1a; 2 publicstaticboolExportExcel(System.Data.DataTable dt, stringpath)3 {4 boolsucceed false;5 if(dt !null)6 {7 Microsoft.Office.Interop.Excel.Application xlApp null;8 try9 {10 xl…

java锁的实现方式_Java 集群锁如何实现呢?

针对分布式锁的实现&#xff0c;目前比较常用的有以下几种方案&#xff1a;基于数据库实现分布式锁 基于缓存(redis&#xff0c;memcached&#xff0c;tair)实现分布式锁 基于Zookeeper实现分布式锁基于数据库表要实现分布式锁&#xff0c;最简单的方式可能就是直接创建一张锁表…

java判断字符集_Java 常用工具类---- 各种字符集编码判断与转换

import java.io.UnsupportedEncodingException;/*** 判断字符编码** author guyinyihun*/public class CharacterCodingUtil {private final static String ENCODE "GBK";/*** 判断是否为ISO-8859-1** return*/public static boolean checkISO(String str) {boolean…

只安装和配置instantclient,用plsql developer,navicat for oracle,sqlplus连接oracle数据库 ....

环境配置&#xff1a; 1.到oracle官网下载instantclient basic包&#xff0c;解压缩到E:\oracle\instantclient_11_2&#xff1b; 2.设置环境变量 NLS_lANGSIMPLIFIED CHINESE_CHINA.ZHS16GBK&#xff08;注意中间有空格&#xff0c;这个如果不设&#xff0c;toad查询中文会是乱…

bae java上传图片_干货分享:gradle+svn轻松搞定BAE java代码上传

背景在BAE基础版和专业版上&#xff0c;java应用通过war包文件部署的时候&#xff0c;总会遇到一些小麻烦&#xff1a;BAE专业版的svn/git有单文件40M的限制&#xff0c;所以在专业版的svn/git中上传超过40M的war包(很多war包都会超过40M)是不可行的BAE基础版的svn/git&#xf…

java缺省包详解_Java在其它包中无法引用缺省包中的类

1、现象1.1 问题场景最近&#xff0c;在写测试代码时&#xff0c;将一个类(这里暂且称为ClassA)放在在缺省包中&#xff0c;也就是说&#xff0c;直接放在了src目录下&#xff0c;没有创建包。然后&#xff0c;将这个类打入了jar文件&#xff0c;提供给另外的工程(这里称为Proj…

myeclipse开发代码颜色搭配保护视力

废话不多说&#xff0c;这个东西主要是为了保护视力的&#xff0c;另外我也挺喜欢上边的颜色搭配的&#xff0c;今天特拿出来分享。直接上图 转载于:https://www.cnblogs.com/suncoolcat/p/3293895.html

linux下qt5静态编译器_笔记-linux下Qt5.3.2 静态编译

这里主要讲linux下的编译&#xff0c;windows下面比较简单依赖sudo apt-get install"^libxcb.*"libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev编译选项configure -confirm-license -opensource -static -release -no-qml-debug -qt-freetype -qt-xcb -n…

css--block formatting context

block formatting context(块级格式化上下文) 如何产生BFC&#xff1a;当一个HTML元素满足下面条件的任何一点&#xff0c;都可以产生Block Formatting Context&#xff1a; float的值不为none。overflow的值不为visible。display的值为table-cell, table-caption, inline-bloc…

java自定义注解_Java自定义注解

Java 注解(Annotation)又称 Java 标注&#xff0c;是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同&#xff0c;Java 标注可以通过反射获取标注内容。在编译器生成类文件时&#xff0c;标注可以被嵌入到字节码中。Java 虚…

ios内购二次认证服务器代码

<?php// 获取认证结果的状态值 function get_status($arr) {while(list($key, $value) each($arr)) {if ($key "status") {return $value;}}return 10000; }// 认证 function verify($check_data, $is_sandbox 0) {$url "https://buy.itunes.apple.com/…

Java字符串压缩存储_java字符串压缩 - jeff1989的个人页面 - OSCHINA - 中文开源技术交流社区...

最近在做电信的一个用户套餐使用积量查询的接口&#xff0c;查询出的结构是一大段字符串。为了减小网络传输&#xff0c;故将字符串采用jdk自带的gzip和zip方法进行压缩。并用apache common 的base64进行压缩字符串的转码。base64的转码需要导入apache的codec包&#xff0c;不要…

android内存及内存溢出分析

一、 Android的内存机制 Android的程序由Java语言编写&#xff0c;所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存&#xff0c;所有对象在java堆内分配空间&#xff1b;然而对象的释放是由垃圾回收器来完成的。C&#xff0f;C中的内存机制是“谁污染…

java 通用方法_java 通用方法 代码

Class.forName("com.mysql.jdbc.Driver");String url"jdbc:mysql://localhost/bbs?userroot& passwordroot";Connection connDriverManager.getConnection(url);conn.setAutoCommit(false);String sql"insert into article values(null,?,?,no…