天天看點

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) 未找到”錯誤?

學習交流群:364976091

繼續閱讀