您好,登錄后才能下訂單哦!
Nuget幫助說明
目 錄
第一章配置說明3
1.1Nuget簡介3
1.2安裝Nuget3
1.2.1創建一個Web應用程序3
1.2.2下載第三方公布的包或制作包5
1.2.2.1下載第三方公布的包5
1.2.2.2通過工具制作包7
1.2.3VS中操作使用包命令8
1.3創建Nuget包并發布到服務器8
1.4在Vs開發環境中配置Nuget包更新地址9
1.5安裝和更新Nuget包9
1.6參考資料10
NuGet是一個為大家所熟知的Visual Studio擴展,通過這個擴展,開發人員可以非常方便地在Visual Studio中安裝或更新項目中所需要的第三方組件,同時也可以通過NuGet來安裝一些Visual Studio的插件等
更新程序包
在《軟件工程的事實和謬誤》(Addison-Wesley Professional,2002 年)一書中,Robert L. Glass 說:“維護工作通常約占軟件成本的 40-80%(平均是 60%)。 因此,維護可能是軟件生命周期中最重要的階段。”
(1) 用在Vs開發環境中使用Nuget管理工具,安裝“NuGet.Server”庫
(2) PM> Install-Package nuget.server
(3) 發布安裝好NuGet.Server庫的Web站點,部署至服務器上
NuGet有個命令行工具:NuGet.exe請設置機器的PATH環境變量,將NuGet.exe的路徑添加到PATH中。方便調用
Nuget命令:
第一步: nuget spec 生成包的描述文件,可調整 (可省略)
nuspec是NuGet將項目打包成nupkg的輸入文件,可以通過nuget spec命令產生。在命令提示符下,進入xxx.csproj類庫文件所在目錄,然后執行,會生成xxx.nuspec文件
第二步:產生類庫包 nuget pack xxxx.csproj
在類庫的AssemblyInfo.cs文件中,將相關信息填寫完整,特別是對應的版本號
執行完后,生成文件:xxx.nupkg
NuGet會使用默認的項目配置所產生的程序集進行打包。如果項目默認是Debug,而你需要用Release打包,則使用下面的命令:
nuget pack xxx.csproj -Prop Configuration=Release
-IncludeReferencedProjects
發布包到服務器上的方式:
1、 將打包好的文件放在(復制)公司內部Nuget服務器的 Packages 文件夾下
2、 通過工具:NuGet Package Explorer
官網: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) 值在服務上的配置文件中配置:
這里可以下載有公布的包( xxx. Nupkg ),然后可以傳到內網包服務器上
這個工具也可以制作需要發布的包
這里可以編輯類庫包的信息和添加類庫、程序集的引用解釋下幾個比較重要的字段
Id:用于定位類庫包的唯一標示,如在命令行下執行 Install-Package MyPackage 這里的MyPackage就是包包的Id值
Version:類庫的版本號,這里建議和程序集的真實版本號保持一致,以免發生混淆
Dependencies:此類庫依賴的程序集,根據實際情況添加依賴類庫的Id和版本號,若無留空即可,這里需要注意下填寫的依賴類庫需要在NuGet服務器上能找到,否則無法完成自動引用添加
Framework assemblies:依賴的Framework 程序集,根據實際需要選擇即可,一般無需設置
除以上四項以外其他屬性根據實際情況修改即可,若自己用不修改也中,不過為了使用方便還是建議把類庫描述(Description)填寫下
Get-Package | 獲取當前項目已經安裝的類庫 |
Install-Package | 安裝指定類庫,命令格式如下:Install-Package 類庫ID,如Install-Package Newtonsoft.Json 這里需要注意的是類庫的ID是唯一的,指向命令后會自動搜索指定類庫源里指定ID類庫,若找到則自動下載并添加引用,找不到則會出現找不到類庫的提示 |
Uninstall-Package | 卸載指定類庫,命令格式如下:Uninstall-Package 類庫ID,如Uninstall-Package Newtonsoft.Json |
Update-Package | 更新指定類庫,命令格式如下:Update-Package 類庫ID,如Update-Package Newtonsoft.Json
此命令嘗試將每個程序包都更新到最新版本。 因此,如果您有 1.0 版本的程序包,而 1.1 和 2.0 版本在該程序包源中可用,則該命令將此程序包更新至最新的 2.0 版本。 |
Update-Package -Safe | 如果任何程序包包含重大改變,這會是一項非常重大的操作。 在多數情況下,您僅希望將各程序包更新至最新的修補程序版本。 這叫“安全”更新,前提是具有較大內部版本號或修訂號(但具有相同的主版本號和次版本號)的程序包能夠向后兼容。 僅添加 Safe 標記以執行安全更新,例如:Update-Package xxxx -Safe 在這種情況下,如果您安裝了 1.0.0 版本的程序包,而 1.0.1 和 1.1 版本在該程序包源中可用,則該程序包將安全地升級至 1.0.1 而非 1.1。 Update-Package 命令還提供更精細的控制,例如,將程序包更新至特定版本而非最新版本。 |
NuGet可以使用NuGet.exe在命令行下進行類庫打包,也可以使用圖形化界面進行打包
(1) 使用Nuget命令打包并發布
在項目下建一個批處理文件,按圖方式進行處理,需要發布時,手動點擊執行后就可發布到服務器上。
創建程序包。在項目文件和 NuSpec 文件所在目錄中,運行以下命令以創建程序包:
nuget pack ProjectName.csproj
如果同一個目錄中只有一個項目文件,則在運行命令時可以省略項目文件名稱。
如果尚未編譯項目,可先用 Build 標記編譯項目,然后壓縮它。 這將在運行 pack 命令之前編譯項目:
nuget pack ProjectName.csproj –Build
將項目里引用項目一起打包:
nuget pack South.Service.csproj -Build -IncludeReferencedProjects
-IncludeReferencedProjects 參數,將打包項目時,將項目引用一起打包,未加參數時,默認是不包含引用項目
此命令將生成名為 ProjectName.{version}. nupkg 的文件,其中,{version} 的值與 AssemblyVersionAttribute 中指定的值相同。 例如,如果版本是 1.0.0,您的程序包將命名為 ProjectName.1.0.0. nupkg。 您可以在操作后使用 Package Explorer 檢查程序包,以確保創建正確。
為了方便開發人員安裝您的程序包,請考慮使用 Symbols 標記創建帶調試器符號的程序包:
nuget pack ProjectName.csproj -Build -Symbols
除了主程序包之外,此命令還創建符號程序包。 這使安裝您的程序包的其他人在調試其應用程序時能夠單步執行程序包代碼。
(2) 用到 NuGet Package Explorer
http://nuget.codeplex.com/releases/59864/clickOnce/NuGetPackageExplorer.application
組件官網:http://npe.codeplex.com/
這里的源就是自己搭建的nuget內網服務器站點
安裝和更新包有2種方式:
1、 通過在項目上右鍵打開包管理工具
2、 通過包管理控制臺
(1) 官方文檔
http://docs.nuget.org/
Nuget公布包地址
http://www.nuget.org/packages
(2) 超詳細圖解:自己架設NuGet服務器
http://diaosbook.com/Post/2012/12/15/setup-private-nuget-server
(3) NuGet學習筆記(2) 使用圖形化界面打包自己的類庫
http://www.cnblogs.com/lzrabbit/archive/2012/05/01/2477607.html
(4) NuGet學習筆記(3) 搭建屬于自己的NuGet服務器
http://www.cnblogs.com/lzrabbit/archive/2012/05/01/2477873.html
(5) 使用NuGet發布自己的類庫包(Library Package)
http://www.cnblogs.com/daxnet/archive/2013/05/07/3064577.html
(6) 使用 NuGet 管理項目庫
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> [選項] |
基于指定的 nuspec 或項目文件創建 NuGet 程序包。指定用于創建程序包的 nuspec 或項目文件的位置。 |
options: |
-OutputDirectory 為創建的 NuGet 程序包文件指定目錄。如果未指定,則使用當前目錄。 |
-BasePath nuspec 文件中定義的文件的基本路徑。 |
-Verbose 顯示程序包生成的詳細輸出。 |
-Version 覆蓋 nuspec 文件中的版本號。 |
-Exclude + 指定創建程序包時要排除的一個或多個通配符模式。 |
-Symbols 確定是否應創建包含源和符號的程序包。當使用 nuspec 指定時,創建常規 NuG |
et 程序包文件和相應的符號程序包。 |
-Tool 確定項目的輸出文件是否應在工具文件夾中。 |
-Build 確定是否應在生成程序包之前生成項目。 |
-NoDefaultExcludes 防止默認排除 NuGet 程序包文件以及以點開頭的文件和文件夾(例如 .svn)。 |
-NoPackageAnalysis 指定命令在生成程序包后,是否不應運行程序包分析。 |
-ExcludeEmptyDirectories 防止在生成程序包時包含空目錄。 |
-IncludeReferencedProjects 包括作為依賴項或作為程序包的一部分的引用項目。 |
-Properties + 在創建程序包時,可以指定以分號 ";" 分隔的屬性列表。 |
-MinClientVersion 設置創建的程序包的 minClientVersion 屬性。 |
-Help (?) help |
-Verbosity 在輸出中顯示以下數量的詳細信息: normal、quiet、detailed。 |
-NonInteractive 不提示用戶進行輸入或確認。 |
有關詳細信息,請訪問 http://docs.nuget.org/docs/reference/command-line-reference |
Update-Package命令相關參數說明:
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. |
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。