如果你使用过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