您好,登錄后才能下訂單哦!
Nuget幫助說明
目 錄
第一章配置說明3
1.1Nuget簡介3
1.2安裝Nuget3
1.2.1創(chuàng)建一個(gè)Web應(yīng)用程序3
1.2.2下載第三方公布的包或制作包5
1.2.2.1下載第三方公布的包5
1.2.2.2通過工具制作包7
1.2.3VS中操作使用包命令8
1.3創(chuàng)建Nuget包并發(fā)布到服務(wù)器8
1.4在Vs開發(fā)環(huán)境中配置Nuget包更新地址9
1.5安裝和更新Nuget包9
1.6參考資料10
NuGet是一個(gè)為大家所熟知的Visual Studio擴(kuò)展,通過這個(gè)擴(kuò)展,開發(fā)人員可以非常方便地在Visual Studio中安裝或更新項(xiàng)目中所需要的第三方組件,同時(shí)也可以通過NuGet來安裝一些Visual Studio的插件等
更新程序包
在《軟件工程的事實(shí)和謬誤》(Addison-Wesley Professional,2002 年)一書中,Robert L. Glass 說:“維護(hù)工作通常約占軟件成本的 40-80%(平均是 60%)。 因此,維護(hù)可能是軟件生命周期中最重要的階段?!?/span>
(1) 用在Vs開發(fā)環(huán)境中使用Nuget管理工具,安裝“NuGet.Server”庫
(2) PM> Install-Package nuget.server
(3) 發(fā)布安裝好NuGet.Server庫的Web站點(diǎn),部署至服務(wù)器上
NuGet有個(gè)命令行工具:NuGet.exe請?jiān)O(shè)置機(jī)器的PATH環(huán)境變量,將NuGet.exe的路徑添加到PATH中。方便調(diào)用
Nuget命令:
第一步: nuget spec 生成包的描述文件,可調(diào)整 (可省略)
nuspec是NuGet將項(xiàng)目打包成nupkg的輸入文件,可以通過nuget spec命令產(chǎn)生。在命令提示符下,進(jìn)入xxx.csproj類庫文件所在目錄,然后執(zhí)行,會生成xxx.nuspec文件
第二步:產(chǎn)生類庫包 nuget pack xxxx.csproj
在類庫的AssemblyInfo.cs文件中,將相關(guān)信息填寫完整,特別是對應(yīng)的版本號
執(zhí)行完后,生成文件:xxx.nupkg
NuGet會使用默認(rèn)的項(xiàng)目配置所產(chǎn)生的程序集進(jìn)行打包。如果項(xiàng)目默認(rèn)是Debug,而你需要用Release打包,則使用下面的命令:
nuget pack xxx.csproj -Prop Configuration=Release
-IncludeReferencedProjects
發(fā)布包到服務(wù)器上的方式:
1、 將打包好的文件放在(復(fù)制)公司內(nèi)部Nuget服務(wù)器的 Packages 文件夾下
2、 通過工具:NuGet Package Explorer
官網(wǎng):http://npe.codeplex.com/
3、 通過命令: nuget push
nuget push E:\xxxx\log4net.2.0.3.nupkg -s http://192.168.1.5:100/ –a 1
這里的-a等同(-ApiKey xx) 值在服務(wù)上的配置文件中配置:
這里可以下載有公布的包( xxx. Nupkg ),然后可以傳到內(nèi)網(wǎng)包服務(wù)器上
這個(gè)工具也可以制作需要發(fā)布的包
這里可以編輯類庫包的信息和添加類庫、程序集的引用解釋下幾個(gè)比較重要的字段
Id:用于定位類庫包的唯一標(biāo)示,如在命令行下執(zhí)行 Install-Package MyPackage 這里的MyPackage就是包包的Id值
Version:類庫的版本號,這里建議和程序集的真實(shí)版本號保持一致,以免發(fā)生混淆
Dependencies:此類庫依賴的程序集,根據(jù)實(shí)際情況添加依賴類庫的Id和版本號,若無留空即可,這里需要注意下填寫的依賴類庫需要在NuGet服務(wù)器上能找到,否則無法完成自動引用添加
Framework assemblies:依賴的Framework 程序集,根據(jù)實(shí)際需要選擇即可,一般無需設(shè)置
除以上四項(xiàng)以外其他屬性根據(jù)實(shí)際情況修改即可,若自己用不修改也中,不過為了使用方便還是建議把類庫描述(Description)填寫下
Get-Package | 獲取當(dāng)前項(xiàng)目已經(jīng)安裝的類庫 |
Install-Package | 安裝指定類庫,命令格式如下:Install-Package 類庫ID,如Install-Package Newtonsoft.Json 這里需要注意的是類庫的ID是唯一的,指向命令后會自動搜索指定類庫源里指定ID類庫,若找到則自動下載并添加引用,找不到則會出現(xiàn)找不到類庫的提示 |
Uninstall-Package | 卸載指定類庫,命令格式如下:Uninstall-Package 類庫ID,如Uninstall-Package Newtonsoft.Json |
Update-Package | 更新指定類庫,命令格式如下:Update-Package 類庫ID,如Update-Package Newtonsoft.Json
此命令嘗試將每個(gè)程序包都更新到最新版本。 因此,如果您有 1.0 版本的程序包,而 1.1 和 2.0 版本在該程序包源中可用,則該命令將此程序包更新至最新的 2.0 版本。 |
Update-Package -Safe | 如果任何程序包包含重大改變,這會是一項(xiàng)非常重大的操作。 在多數(shù)情況下,您僅希望將各程序包更新至最新的修補(bǔ)程序版本。 這叫“安全”更新,前提是具有較大內(nèi)部版本號或修訂號(但具有相同的主版本號和次版本號)的程序包能夠向后兼容。 僅添加 Safe 標(biāo)記以執(zhí)行安全更新,例如:Update-Package xxxx -Safe 在這種情況下,如果您安裝了 1.0.0 版本的程序包,而 1.0.1 和 1.1 版本在該程序包源中可用,則該程序包將安全地升級至 1.0.1 而非 1.1。 Update-Package 命令還提供更精細(xì)的控制,例如,將程序包更新至特定版本而非最新版本。 |
NuGet可以使用NuGet.exe在命令行下進(jìn)行類庫打包,也可以使用圖形化界面進(jìn)行打包
(1) 使用Nuget命令打包并發(fā)布
在項(xiàng)目下建一個(gè)批處理文件,按圖方式進(jìn)行處理,需要發(fā)布時(shí),手動點(diǎn)擊執(zhí)行后就可發(fā)布到服務(wù)器上。
創(chuàng)建程序包。在項(xiàng)目文件和 NuSpec 文件所在目錄中,運(yùn)行以下命令以創(chuàng)建程序包:
nuget pack ProjectName.csproj
如果同一個(gè)目錄中只有一個(gè)項(xiàng)目文件,則在運(yùn)行命令時(shí)可以省略項(xiàng)目文件名稱。
如果尚未編譯項(xiàng)目,可先用 Build 標(biāo)記編譯項(xiàng)目,然后壓縮它。 這將在運(yùn)行 pack 命令之前編譯項(xiàng)目:
nuget pack ProjectName.csproj –Build
將項(xiàng)目里引用項(xiàng)目一起打包:
nuget pack South.Service.csproj -Build -IncludeReferencedProjects
-IncludeReferencedProjects 參數(shù),將打包項(xiàng)目時(shí),將項(xiàng)目引用一起打包,未加參數(shù)時(shí),默認(rèn)是不包含引用項(xiàng)目
此命令將生成名為 ProjectName.{version}. nupkg 的文件,其中,{version} 的值與 AssemblyVersionAttribute 中指定的值相同。 例如,如果版本是 1.0.0,您的程序包將命名為 ProjectName.1.0.0. nupkg。 您可以在操作后使用 Package Explorer 檢查程序包,以確保創(chuàng)建正確。
為了方便開發(fā)人員安裝您的程序包,請考慮使用 Symbols 標(biāo)記創(chuàng)建帶調(diào)試器符號的程序包:
nuget pack ProjectName.csproj -Build -Symbols
除了主程序包之外,此命令還創(chuàng)建符號程序包。 這使安裝您的程序包的其他人在調(diào)試其應(yīng)用程序時(shí)能夠單步執(zhí)行程序包代碼。
(2) 用到 NuGet Package Explorer
http://nuget.codeplex.com/releases/59864/clickOnce/NuGetPackageExplorer.application
組件官網(wǎng):http://npe.codeplex.com/
這里的源就是自己搭建的nuget內(nèi)網(wǎng)服務(wù)器站點(diǎn)
安裝和更新包有2種方式:
1、 通過在項(xiàng)目上右鍵打開包管理工具
2、 通過包管理控制臺
(1) 官方文檔
http://docs.nuget.org/
Nuget公布包地址
http://www.nuget.org/packages
(2) 超詳細(xì)圖解:自己架設(shè)NuGet服務(wù)器
http://diaosbook.com/Post/2012/12/15/setup-private-nuget-server
(3) NuGet學(xué)習(xí)筆記(2) 使用圖形化界面打包自己的類庫
http://www.cnblogs.com/lzrabbit/archive/2012/05/01/2477607.html
(4) NuGet學(xué)習(xí)筆記(3) 搭建屬于自己的NuGet服務(wù)器
http://www.cnblogs.com/lzrabbit/archive/2012/05/01/2477873.html
(5) 使用NuGet發(fā)布自己的類庫包(Library Package)
http://www.cnblogs.com/daxnet/archive/2013/05/07/3064577.html
(6) 使用 NuGet 管理項(xiàng)目庫
http://msdn.microsoft.com/zh-cn/magazine/hh647106.aspx
http://www.netfoucs.com/article/hxtan/100384.html
C:\Users\wxq>nuget pack -help |
usage: NuGet pack <nuspec | project> [選項(xiàng)] |
基于指定的 nuspec 或項(xiàng)目文件創(chuàng)建 NuGet 程序包。指定用于創(chuàng)建程序包的 nuspec 或項(xiàng)目文件的位置。 |
options: |
-OutputDirectory 為創(chuàng)建的 NuGet 程序包文件指定目錄。如果未指定,則使用當(dāng)前目錄。 |
-BasePath nuspec 文件中定義的文件的基本路徑。 |
-Verbose 顯示程序包生成的詳細(xì)輸出。 |
-Version 覆蓋 nuspec 文件中的版本號。 |
-Exclude + 指定創(chuàng)建程序包時(shí)要排除的一個(gè)或多個(gè)通配符模式。 |
-Symbols 確定是否應(yīng)創(chuàng)建包含源和符號的程序包。當(dāng)使用 nuspec 指定時(shí),創(chuàng)建常規(guī) NuG |
et 程序包文件和相應(yīng)的符號程序包。 |
-Tool 確定項(xiàng)目的輸出文件是否應(yīng)在工具文件夾中。 |
-Build 確定是否應(yīng)在生成程序包之前生成項(xiàng)目。 |
-NoDefaultExcludes 防止默認(rèn)排除 NuGet 程序包文件以及以點(diǎn)開頭的文件和文件夾(例如 .svn)。 |
-NoPackageAnalysis 指定命令在生成程序包后,是否不應(yīng)運(yùn)行程序包分析。 |
-ExcludeEmptyDirectories 防止在生成程序包時(shí)包含空目錄。 |
-IncludeReferencedProjects 包括作為依賴項(xiàng)或作為程序包的一部分的引用項(xiàng)目。 |
-Properties + 在創(chuàng)建程序包時(shí),可以指定以分號 ";" 分隔的屬性列表。 |
-MinClientVersion 設(shè)置創(chuàng)建的程序包的 minClientVersion 屬性。 |
-Help (?) help |
-Verbosity 在輸出中顯示以下數(shù)量的詳細(xì)信息: normal、quiet、detailed。 |
-NonInteractive 不提示用戶進(jìn)行輸入或確認(rèn)。 |
有關(guān)詳細(xì)信息,請?jiān)L問 http://docs.nuget.org/docs/reference/command-line-reference |
Update-Package命令相關(guān)參數(shù)說明:
Parameter | Type | Description |
-Id | string | Specifies the Id of the package to be updated. |
-ProjectName | string | Specifies the name of the project in which packages should be updated. |
-Version | SemanticVersion* | Specifies the new target version of the package as a result of the update. |
-Source | string | Specifies where to look for package updates, overriding the package sources that are specified in the Options dialog. This value can be either a url to a remote repository or a path to a local repository or the name of a package source specified in the Options dialog. |
-IgnoreDependencies | Switch parameter | If set, NuGet will ignore dependency packages and only update the main package. |
-Safe | Switch parameter | If set, NuGet will only update to a new version that has the same major and minor versions as the previous package. For example, if the old version is 1.2.0, NuGet will accept the update package with version of 1.2.1 or 1.2.9999 but it will not accept 1.3.0. |
-IncludePrerelease | Switch parameter | If set, NuGet will consider prerelease packages as candidates for updates. |
-Reinstall | Switch parameter | If set, instead of updating the package to the latest version, NuGet will uninstall the package and reinstall the same version. This is useful when, for example, you‘ve updated the target framework of your project, e.g. from .NET 4.0 to .NET 4.5, and you want to reference .NET 4.5-specific assemblies in the package. You can‘t set this parameter together with the -Version parameter. |
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。