Visual Studio 下nuget命令的使用

从Visual Studio
2012版本开始默认集成了Nuget扩展,在Visual Studio
2010或以下的版本需要单独安装,安装方法如下:

VS2010 MVC3利用NuGet来安装EFCodeFirst package失败解决方法

背景①:利用NuGet来安装EFCodeFirst方法

①我们可以利用NuGet包管理器(安装ASP.NET
MVC3时会自动安装)来把EFCodeFirst类库添加到我们的Mvc工程中。这个类库使得我们可以直接使用code-first。点击“工具”菜单下的“Library
Package Manager”子菜单下的“Add Library Package Reference”菜单选项;

②点击“Add Library Package
Reference”菜单选项后,将会弹出一个对话框,标题为“Add Library Package
Reference”;

③默认状态下,左边的“All”选项处于选择状态。因为还没有安装任何包,所以右边面板中显示“找不到任何项”。点击左边面板中的“online”选项,NuGet包管理器将会在服务器上检索所有当前能够获取的包;

④服务器上有几百个当前能够获取的包,现在我们只关注EFCodeFirst包。在右上角的搜索输入框中输入“EFCode”。在检索结果中,选择EFCodeFirst包,并且点击Install按钮安装包;

⑤点击了install按钮后,会弹出一个接受许可证窗口,在这个窗口中必须要点击“I
Accept”按钮,接受许可证条款,安装才能继续进行。

⑥安装完毕后,点击close按钮。我们的Mvc工程中会自动加载EntityFramework程序集,其中包含了EFCodeFirst类库。

背景②:让事实说话

今天在Win 7下利用NuGet来安装EFCodeFirst package时,出现错误:This
package(or one of its dependencies) contains PowerShell scripts and
needs to be installed from the Package Manager Console。

师兄的XP下出现该提示的解决方法是打一个微软的补丁KB968930,下载地址:

里面有XP,Vista,Windows Server 2003及2008的32位,64位版本,但是没有Win
7版本的,

微软对该补丁的描述如下:

Windows XP 更新程序 (KB968930)
Windows Management Framework Core 程序包提供了适用于 IT
专业人员的已更新管理功能。

用于 Windows Server 2008 的 Windows PowerShell 2.0 和 WinRM 2.0
(KB968930)
Windows Management Framework Core 程序包包括 Windows PowerShell 2.0 和
Windows Remote Management (WinRM) 2.0。

解决鸟:后来根据提示找到了一个在控制台进行安装的解决方法:

①博客园原文内容如下:

I tried to install EntityFramework 4.1 on VS 2010 through NuGet. I
searched and found the package through “Tools > Library Package
Manager > Add Library Package Reference” tool and I got this error:
“This package (or one of its dependencies) contains powershell scripts
and needs to be installed from the package manager console.”. This is
what I did to fix it:

Tools > Library Package Manager >
Package Manager Console
PM > get-package -remote -filter
entityframework
(got some results including
EntityFramework 4.1.10311.0)
PM > install-package -id
EntityFramework
Successfully added ‘EntityFramework

②根据提示,在控制台安装会出现如下信息(以下蓝色内容为需要输入的命令):

Each package is licensed to you by its owner. Microsoft is not
responsible for, nor does it grant any licenses to, third-party
packages. Some packages may include dependencies which are governed by
additional licenses. Follow the package source (feed) URL to determine
any dependencies.

PM> get-package -remote -filter
entityframework

Id Version Description
– ——- ———–
Check_My_Box_Packages 1.1.0.2 This Package uses MvcScaffolding,
EntityFramew…
Check_My_Box_Packages 1.1.0.3 This Package uses MvcScaffolding,
EntityFramew…
EFCodeFirst 1.0 Legacy package, Code First is now included in …
EFCodeFirst 1.1 Legacy package, Code First is now included in …
EntityFramework 4.1.10311.0 DbContext API and Code First workflow for
ADO….
EntityFramework 4.1.10331.0 DbContext API and Code First workflow for
ADO….
EntityFramework.Patterns 0.2 Provides different patterns to be used with
En…
EntityFramework.Sample 4.1 This sample blog model demonstrates the use
of…
EntityFramework.SqlServerCompact 4.1.8482.1 Allows SQL Server Compact
4.0 to be used with …
EntityFrameworkProfiler 1.0.0.839 EntityFramework Profiler is a
real-time visual…

PM> install-package -id
EntityFramework
You are downloading EntityFramework from Microsoft, the license
agreement to which is available at
. Check the package for
additional dependencies, which may come with their own license
agreement(s). Your use of the package and dependencies constitutes your
acceptance of their license agreements. If you do not accept the license
agreement(s), then delete the relevant components from your device.
已成功安装“EntityFramework 4.1.10331.0”
已成功将“EntityFramework 4.1.10331.0”添加到 MvcMovie

 

题目如下:

威尼斯官方网站登录 1

  1. 解决规划:

1)封闭VS2010

2)从头下载NuGet

3)打开VS2010
//若是显示如图

威尼斯官方网站登录 2

//则默示你 没有选择景象
威尼斯官方网站登录 3

How to use it

  1. Open a project in Visual Studio (it doesn””t matter which – if
    you try to install a package outside of a solution, you””ll get
    slapped down with “The current environment doesn””t have a
    solution open”).
  2. Open the Package Manager console (View / Other Windows / Package
    Manager Console).
  3. Type “install-package NuGet.Downloader” – you should see
    “Successfully installed “”Nuget.Downloader 1.0.0.5″”.” (with
    whatever the current version number is).
  4. This adds a new commend to the Package Manager console,
    Download-Packages. You can run it without any parameters, which
    will grab the top 500 most popular NuGet packages and drop them in
    a new LocalNuGet folder inside your My Documents folder.
  5. If desired, uninstall the package using Uninstall-Package.

//你须要做的就是设置DefaultProject
威尼斯官方网站登录 4

4)再用PM> install-package -id EntityFramework -Version
4.2.0.0号令进级即可

 

Nuget
这个工具最先是在MIX11上开始让我注意.不知道当时看MIX同学是否注意到一个小细节.-就是所有MIX11
Code演示环节中MS开发人员都使用Nuget.本篇介绍一些Nuget安装和一些在实际项目中基本用法.

首先 解释一下Nuget
Tool是什么?

威尼斯官方网站登录 5

NuGet 是一种 Visual Studio
扩展工具,它能够简化在 Visual Studio
项目中添加、更新和删除库(部署为程序包)的操作。 NuGet
程序包是打包成一个文件的文件集,扩展名是 . nupkg,使用开放打包约定 (OPC)
格式.

在没有使用Nuget工具之前.如果我们要在一个普通.NET项目中添加一个库的引用.最简单的方式就是添加DLL引用的方式实现第三方代码库引用.通过下载解压.添加引用操作.如果在发布时还需要为项目依赖项进行大量手工整理.是否发现.在DLL引入到发布整个过程存在一个管理”真空“状态.如果要向其他开发者或组织共享我们代码.是否意味更复杂的操作.着恰恰也是Nuget所做的.

安装Nuget有两种方式.方式一打开Visual
Studio 2010,打开Tool->Extension Manager窗体.选择Online
Gallery,在搜索框中输入NuGet看到:

威尼斯官方网站登录 6

点击Download下载会自动安装,另外一种方式打开http://www.nuget.org/直接下载安装文件NuGet
Manager . 点击运行开始安装:

威尼斯官方网站登录 7

选择安装工具 下一步:

威尼斯官方网站登录 8

安装完成.如果在安装过程出现错误货没有正确安装会在安装界面提示:

威尼斯官方网站登录 9

关于安装出错后通过查看Install Log
确定出错的原因:

威尼斯官方网站登录 10

如果觉得麻烦.也可以不看.直接找到上图的目录删除掉NuGet
Package Manager文件夹,重新安装Nuget
Tool即可.安装完成后可以创建一个Windows phone Application
打开Tool->Library Package Manager->Package Manager Console:

威尼斯官方网站登录 11

可以通过在控制台Package Manager
Console 输出目录管理库 首先在在线的http://www.nuget.org/packages目录下找到对应库初始化路径
类似找到Json.NET http://www.nuget.org/packages/Newtonsoft.Json 初始化路径为:

威尼斯官方网站登录 12

输入:Install-Package
Newtonsoft.Json

威尼斯官方网站登录 13

如果对应库文件较大.则会在Visual
Studio 右下角提示有下载进度.安装完成后:

威尼斯官方网站登录 14

可以在当前项目目录中看到已经成功添加到引用中:

威尼斯官方网站登录 15

 

 

 

 

 

 

 

 

 

可以引用管理手动添加库文件.在解决方案的References引用可以看到:

威尼斯官方网站登录 16

多了一个Manage Nuget
Packages打开管理窗体能够实现已经安装库文件管理:

威尼斯官方网站登录 17

Nuget提供基于 Windows PowerShell
的控制台窗口(称作程序包管理器控制台)以及一组 Windows PowerShell 命令与
NuGet 进行交互。 Windows PowerShell 是基于 .NET 的脚本语言和命令行
shell,非常适合组成命令集,并能够处理对象.当然PowerShell提供强大支持可以Package
Manager Console通过指令直接管理卸载库
例如卸载已经引用Json.NET库输入:Unstall-Package
Newtonsoft.Json卸载.如果想看到当前项目已经引用的Package在Console
直接通过指令的方式获取 Get-Package:

威尼斯官方网站登录 18

 

 

 

看到当前项目中已经使用库文件
以及版本其他信息.如果已经引用的组件存在新的版本
依然可以通过Update-Package批量更新已经引用的库:

威尼斯官方网站登录 19

 

命令尝试将每个程序包都更新到最新版本,如果任何程序包包含重大改变,这会是一项非常重大的操作。
在多数情况下,您仅希望将各程序包更新至最新的修补程序版本。
这叫“安全”更新,前提是具有较大内部版本号或修订号(但具有相同的主版本号和次版本号)的程序包能够向后兼容。
仅添加 Safe 标记以执行安全更新:例:Update-Package –Safe

当然我们能够现在操作都是基于在线Nuget官方数据源Package操作.当然我们可以PAckage数据源设置成本地
找到绿色按钮Package Manager Settings:

威尼斯官方网站登录 20

威尼斯官方网站登录,打开并在一个指定本地目录下添加一个本地Package数据源:

威尼斯官方网站登录 21

能在Console看到指定的数据源设置分类LocalPackages:

威尼斯官方网站登录 22

当然对于组织结构更大的公司和开发团队.如果简单的使用SVN和Git管理方式依然不容易控制不同库版本和对外共享的控制.Nuget针对企业用户提供可以在企业内部搭建一个Nuget
Server的形式来统一管理内部开发团队库共享. 大大提高开发效率.

1.
“工具”→“扩展和更新…”,弹出扩展管理面板

2.
左侧选择“联机”,右侧搜索框输入“nuget”,搜索可以点击安装,安装完成可能要重新启动Visual
Studio

威尼斯官方网站登录 23

威尼斯官方网站登录 24

 

由于我这里使用的是Visual Studio
2015,因此跳过安装,这里主要是nuget命令使用的介绍,Nuget另一种使用方式可以通过可视化的界面去操作,这里就不作介绍(可以右击解决方案或者项目,从菜单中选择Nuget程序包管理打开可视化管理界面)

威尼斯官方网站登录 25

 

 

威尼斯官方网站登录 26

 

 

要使用命令来管理程序集,需要到Nuget控制台下,调出控制台的方式是:工具→Nuget包管理器→程序包管理器控制台,

威尼斯官方网站登录 27

威尼斯官方网站登录 28

 

这里为解决方案添加了两个项目:

威尼斯官方网站登录 29

 

 Install-Package   安装程序包

 install-Package是安装程序包,为ConsoleApplication1安装Entity
Framework

Install-Package EntityFramework

威尼斯官方网站登录 30

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章