自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在生產(chǎn)環(huán)境使用Nuget

開發(fā) 后端
本文將簡單介紹在生產(chǎn)環(huán)境使用Nuget,要在實際生產(chǎn)環(huán)境使用它來做打包和包管理,比之更為成熟的Maven來說,從目前版本來看稍有不足。

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

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

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

  packages.config的繼承和解決方案中的識別

  比如:

  1. nuget updatexx.sln2: nuget updatepackages.config 

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

  1. nuget install packages.config 

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

  和build的集成度:

  類似上面一點,build的時候不會對本地倉庫不存在的必備依賴去自動獲取

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

  repository的安裝位置不可配置:

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

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

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

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

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

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

  1. <?xmlversionxmlversion="1.0"?> 
  2. <packagexmlnspackagexmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> 
  3. <metadata> 
  4. <id>Package.Castle</id> 
  5.  <version>2.1</version> 
  6. <title>Castle</title> 
  7. <authors>Castle</authors> 
  8. <owners/> 
  9. <requireLicenseAcceptance>false</requireLicenseAcceptance> 
  10.  <description> 
  11. IOC容器  
  12.  </description> 
  13.  <copyright>2011</copyright> 
  14. <language>zh-CN</language> </metadata> <files> 
  15.  <filesrcfilesrc="CastleCastle.Core.dll"target="lib et40Castle.Core.dll"/> 
  16.  <filesrcfilesrc="CastleCastle.Core.xml"target="lib et40Castle.Core.xml"/> 
  17. <filesrcfilesrc="CastleCastle.DynamicProxy2.dll"target="lib et40Castle.DynamicProxy2.dll"/> 
  18.  <filesrcfilesrc="CastleCastle.DynamicProxy2.xml"target="lib et40Castle.DynamicProxy2.xml"/> 
  19. <filesrcfilesrc="CastleCastle.MicroKernel.dll"target="lib et40Castle.MicroKernel.dll"/> 
  20.  <filesrcfilesrc="CastleCastle.MicroKernel.xml"target="lib et40Castle.MicroKernel.xml"/> 
  21.  <filesrcfilesrc="CastleCastle.Windsor.dll"target="lib et40Castle.Windsor.dll"/> 
  22.  <filesrcfilesrc="CastleCastle.Windsor.xml"target="lib et40Castle.Windsor.xml"/> 
  23. </files> 
  24. </package> 
  25.  
  26.    

  批量打包和發(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.   <?xmlversionxmlversion="1.0"?> 
  2.  <projectnameprojectname="infrastructure"default="build"> 
  3. <propertynamepropertyname="project.config"value="release"dynamic="true"/> 
  4.  <!--path--> 
  5. <propertynamepropertyname="dir"value="."/> 
  6.  <propertynamepropertyname="dir.tools"value=". ools"/> 
  7. <propertynamepropertyname="build.base"value="build${project.config}"/> 
  8.  <propertynamepropertyname="build.absolutepath"value="${path::get-full-path(build.base)}"/> 
  9.  <!--msbuild-->10: <propertynamepropertyname="msbuild"value="C:WINDOWSMicrosoft.NETFrameworkv4.0.30319MSBuild.exe"/> 
  10. <propertynamepropertyname="msbuild.config"value="Debug"dynamic="true"/> 
  11. <iftestiftest="${project.config=='Release'}"> 
  12. <propertynamepropertyname="msbuild.config"value="Release"/> 
  13. </if> 
  14. <propertynamepropertyname="msbuild.params"    
  15. value="/t:rebuild   
  16.  /p:Configuration=${msbuild.config}  
  17. /p:AllowUnsafeBlocks=true 
  18.  /t:ResolveReferences" /> 
  19. <propertynamepropertyname="msbuild.params.weboutput"value="/t:_CopyWebApplication /p:WebProjectOutputDir=${build.absolutepath}"/> 
  20. <propertynamepropertyname="msbuild.params.output"value="/p:OutputPath=${build.absolutepath}"/> 
  21. <!--nuget--> 
  22. <propertynamepropertyname="nuget"value="${path::get-full-path(dir.tools)}"/> 
  23. <propertynamepropertyname="nuget.packages"value="${dir}packages"/> 
  24. <propertynamepropertyname="nuget.install"value="${dir} uget.install.bat"/> 
  25. <propertynamepropertyname="nuget.params.install"value="${nuget} ${path::get-full-path(nuget.packages)}"/> 
  26.  <!--build infrastructure--> 
  27. <targetnametargetname="base"description="Infrastructure"> 
  28. <execprogramexecprogram="${nuget.install}"commandline="${nuget.params.install}"workingdir="${dir}"/> 
  29.  <execprogramexecprogram="${msbuild}" 
  30.  commandline="${msbuild.params} ${msbuild.params.output}" workingdir="${dir}Infrastructure\"/> 
  31.  </target> 
  32.  </project> 

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

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

  1. . ools antin ant base 

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

  作者:wsky (huangxu)

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

【編輯推薦】

  1. VS.NET 2010已經(jīng)發(fā)布了beta2版本 新功能
  2. 初步了解Visual Studio 2010 Professional專業(yè)版
  3. Visual Studio 2010中使用MTLM管理測試工具
  4. Visual Studio 2010 SP1公測版已經(jīng)發(fā)布
  5. Visual Studio 2010中敏捷開發(fā)流程模板的應(yīng)用
責任編輯:彭凡 來源: 博客園
相關(guān)推薦

2021-12-03 07:27:29

EFCore生產(chǎn)環(huán)境

2022-09-04 21:17:03

高可用Linkerd

2022-05-26 09:00:00

網(wǎng)站抓取Lightrun開發(fā)

2020-11-23 07:56:08

Vue生產(chǎn)環(huán)境

2020-02-25 15:47:05

ElasticsearLucene地方

2015-08-03 09:08:29

2020-09-14 15:30:23

開發(fā)技能代碼

2015-11-20 15:28:36

AWSGoAWS SDK for

2018-11-20 10:10:54

Redis數(shù)據(jù)庫模糊查詢

2020-12-25 09:00:00

Kubernetes容器開發(fā)

2015-10-28 16:20:10

短生命周期容器原生云計算

2012-02-07 09:56:06

無代理防毒產(chǎn)品

2022-10-21 11:14:44

2019-09-18 20:46:57

容器生產(chǎn)環(huán)境數(shù)據(jù)中心

2022-05-09 23:03:38

機器學(xué)習(xí)人工智能工業(yè)4.0

2023-11-14 17:40:32

2021-10-28 19:08:29

Python虛擬環(huán)境

2020-09-14 07:35:40

Redis命令框架

2013-08-16 11:17:35

虛擬桌面虛擬快照

2021-10-29 10:50:13

XfceXubuntuLinux
點贊
收藏

51CTO技術(shù)棧公眾號