NuGet使用方法

如果你使用过VS2010.net,那么你应该知道2010中有个插件管理器,可以在插件管理器中添加NuGet,那么NuGet有什么用?他可以你每个版本的程序打包,每个版本的程序引用了

那个组件,组件是什么版本,他都准确的记录在打包的文件中,以备下次引用时一起插入到项目中。像我们原来把一些组件插入到项目中时,都是把一些引用的文件插入引用N次才

能正常使用,有他了,你只需要在PM中输入 Install-Package 组件名称 就可以完美引用了。
NuGet的使用方式有两种,一种是对于个人在自己的电脑上使用。另一种就是公司内使用,搭建一台服务器通过WEB自由使用共享组件。
详情配置请参考“http://archive.cnblogs.com/a/2034508/”,我个人认为这个是最为简单的方法。
你也可以参考一下这个“http://www.cnblogs.com/durongjian/archive/2011/06/30/2094342.html”,这个稍微复杂一些。

有需要用的朋友可以在此处下载:http://nuget.codeplex.com。

另外我自己写了个批处理文件在此贴上仅供参考:


@echo off
@REM 项目名称,注意:.csproj些文件名称。
@set ProjectName=Jayrock.Json

@REM 打包后的NuGet服务器保存路径。
@set PacksPath=D:\wwwroot\NuGet\NuGetSVR\Packages\

@REM NuGet.exe应用程序保存的位置,因为批处理文件是把NuGet复制到当前项目下在进行编译的。
@set NuGetPath=D:\wwwroot\NuGet\NuGetSVR

@REM 判断NuGet文件是否存在。
@if not exist "%NuGetPath%\NuGet.exe" (
 echo NuGet.exe 文件不存在,请检查文件是否有效。
 @goto BuildEnd
)

@if not exist "NuGet.exe" copy "%NuGetPath%\NuGet.exe" .\NuGet.exe

@REM 自动生成nuspec文件,如果bin\Debug\已经生成DLL文件,则按照DLL的信息生成,否则默认。
@if not exist "%ProjectName%.nuspec" (
 @if exist "bin\Debug\%ProjectName%.dll" NuGet spec -a bin\Debug\%ProjectName%.dll
 @if not exist "bin\Debug\%ProjectName%.dll" (
  NuGet spec
  echo 请填写完整 "%ProjectName%.nuspec" 文件,在次执行 build.bat 进行编译!
  @goto BuildEnd
 )
)

@if not exist "%PacksPath%%ProjectName%" md "%PacksPath%%ProjectName%"

@REM 先编译出Release版本,在开始打包文件。
NuGet pack -o %PacksPath%%ProjectName% -build -Properties configuration=release

:BuildEnd
echo. & pause


以下是参配置过程中发现的错误及解决方法

1. 当前版本为 v1.4,发生“远程服务器返回错误: (404) 未找到”错误?
   此问题基本都发生在低于IIS7.0版本的服务器上,在上面的两个参考Blog中他们使用的都是IIS7.0的版本,可能不存在此问题,所以两位作者都没提到此问题。
   在IIS的当前网站中添加MIME可以解决此问题,操作步骤如下:
   IIS ==》当前网站 ==》右键属性 ==》HTTP 头 ==》点击“MIME 类型” ==》点击“新建” ==》扩展名“.nupkg”,类型“application/zip”

2. 当前版本为 v1.5,发生“远程服务器返回错误: (404) 未找到”错误?
   请先参考问题1的解决方法,如果还不行请安装ASP.NET 中执行 URL 重写组件,下载地址为:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi

学习交流群:364976091
原文地址:https://www.cnblogs.com/firstcsharp/p/2831099.html