日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何在生產(chǎn)環(huán)境使用Nuget

關(guān)于Nuget http://nuget.org/

  官方提供的使用文檔比較豐富 http://docs.nuget.org/

  要在實(shí)際生產(chǎn)環(huán)境使用它來做打包和包管理,比之更為成熟的Maven來說,從目前版本來看稍有不足,主要是以下幾點(diǎn):

  packages.config的繼承和解決方案中的識(shí)別

  比如:

 
 
 
 
  1. nuget updatexx.sln2: nuget updatepackages.config

  它做的事只是對(duì)比包得版本是否有更新并更新之,只要版本沒有變化,即使本地倉庫沒有這個(gè)包也不會(huì)去下載它,而

 
 
 
 
  1. nuget install packages.config

  只能指定具體的config文件,不能通過一個(gè)sln件自動(dòng)去掃描解決方案里的所有packages.config

  和build的集成度:

  類似上面一點(diǎn),build的時(shí)候不會(huì)對(duì)本地倉庫不存在的必備依賴去自動(dòng)獲取

  nuget雖然提供 -build參數(shù),但是僅是使用了MSBuild,本身的構(gòu)建描述能力缺乏(所以下文在生產(chǎn)環(huán)境使用會(huì)搭配NANT來完成構(gòu)建過程),而maven中則比較完整的集成了這個(gè)過程

  repository的安裝位置不可配置:

  默認(rèn)情況下package的安裝目錄是在.sln所在的目錄下建立一個(gè)packages目錄,也就是說是solutionfile級(jí)別的,這個(gè)對(duì)于項(xiàng)目數(shù)量多的時(shí)候是比較難接受的,本地開發(fā)還好,在build服務(wù)器構(gòu)建的時(shí)候就比較麻煩了,不能再同一個(gè)位置管理包

  這個(gè)問題在它的官方已經(jīng)有人在問了,估計(jì)下幾個(gè)版本會(huì)有動(dòng)作

  以下提供一些解決上述問題或?qū)嶋H應(yīng)用時(shí)的一些方法

  下述范例所在目錄結(jié)構(gòu):

  http://ops-base/feeds/是自己hosting的一個(gè)nuget feed(http://docs.nuget.org/docs/creating-packages/hosting-your-own-nuget-feeds)

  創(chuàng)建包描述文件:

 
 
 
 
  1. Package.Castle
  2.  2.1
  3. Castle
  4. Castle
  5. false
  6.  
  7. IOC容器
  8.  
  9.  2011
  10. zh-CN  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  

  批量打包和發(fā)布到feeds,pack.bat腳本如下:

 
 
 
 
  1.  echo off
  2.  mkdir assemblypackages
  3.  echo pack
  4.  forfiles /p assembly /m *.nuspec /c "cmd /c .. ools uget pack @file-outputdirectory packages"
  5.  echo push
  6.  forfiles /p assemblypackages /m *.nupkg /c "cmd /c .... ools uget push @file-s http://ops-base/feeds/hello1234"
  7.  echo on

  批量安裝和更新本地package,nuget.install.bat腳本如下:

 
 
 
 
  1. echo off
  2. echo install
  3. forfiles /s /m packages.config /c "cmd /c %1 uget install @file -o %2"
  4. echo update
  5. forfiles /s /m packages.config /c "cmd /c %1 uget update @file -source http://ops-base/feeds/nuget"
  6. echo on

  然后使用NANT然完成構(gòu)建過程,nant.build部分內(nèi)容如下:

 
 
 
 
  1.   
  2.  
  3.  
  4.  
  5.  
  6.  10: 
  7. value="/t:rebuild 
  8.  /p:Configuration=${msbuild.config}
  9. /p:AllowUnsafeBlocks=true
  10.  /t:ResolveReferences" />
  11.  
  12.  
  13.  commandline="${msbuild.params} ${msbuild.params.output}" workingdir="${dir}Infrastructure\"/>
  14.  
  15.  

  上述nant腳本中,target=base的構(gòu)建目標(biāo)就是要構(gòu)建的項(xiàng)目了,首先執(zhí)行nuget.install.bat腳本更新本地packages,然后執(zhí)行msbuild

  然后運(yùn)行下述腳本執(zhí)行構(gòu)建:

 
 
 
 
  1. . ools antin ant base

  到這里就完成了將nuget投入項(xiàng)目環(huán)境使用的相關(guān)準(zhǔn)備工作:)

  作者:wsky (huangxu)

  出處:http://wsky.cnblogs.com/


名稱欄目:如何在生產(chǎn)環(huán)境使用Nuget
URL鏈接:http://m.5511xx.com/article/cdhscee.html