如果你使用過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) 未找到”錯誤?
學習交流群:364976091