Nuget是.NET程序包管理工具(相似linux下的npm等),程序員可直接用簡單的命令行(或VS)下載包。好處:html
(1)避免類庫版本不一致帶來的問題。GitHub是管理源代碼的,這個是管理生成的類庫/包的。linux
(2)可自動處理類庫依賴:git
(3)可指定下載歷史版本: install-package name –version 1.0.2程序員
(4)可部署私有包服務器: https://docs.microsoft.com/en-us/nuget/hosting-packages/overviewgithub
可用微軟帳戶登陸註冊npm
(1) 這個key最多隻能用一年。超出了怎麼辦?不知道有沒有續期措施。服務器
(2) Glob pattern:匹配模式,用戶搜索時用的?app
(1) 去官網下載Nuget.exe:工具
https://www.nuget.org/downloads
VS 2017已經內置了,但不知道怎麼在VS內部運行nuget命令
(2) 在項目目錄下運行命令:
nuget setApiKey xxxxxxxxx-5a3c-4a67-b969-3cda4f074341
nuget spec, 生成並編輯 .nuspec 文件(是包的配置信息)
nuget pack xxx.csproj, 生成 .nupkg 文件(包)
nuget push xxx.1.0.x.nupkg, 發佈
參考:https://github.com/NuGetPackageExplorer/NuGetPackageExplorer
(1)安裝並運行:Microsoft Store > NuGet Package Explorer
(2)新建包 > 添加文件夾/文件
可添加的目錄類別包括:
build |
輸出到bin目錄 |
content |
原樣拷貝 |
lib |
添加到引用 |
src |
源碼拷貝 |
tools |
? |
(3)發佈,填寫入你的key
在vs>工具>Nuget包管理器>管理解決方案的Nuget程序包>瀏覽:
或者直接在程序包管理器控制檯中用命令行
Install-package packageName
部署後自動將引用、資源、配置等自動發佈到新程序。
注意,包發佈後有時延。
(1) 指定依賴的.NET類庫版本
(2) 限制可下載的版本
(3) 引用類庫
(4) 修改.config文件
在Content目錄下包含app.config.transform
或 web.config.transform
文件。
https://docs.microsoft.com/zh-cn/nuget/create-packages/source-and-config-file-transformations
(5) 新增文件
在Content目錄下放置代碼文件,並附加.pp擴展名。如:
content\Model\ContosoData.cs.pp
代碼中可用$token$放置一些變量(https://msdn.microsoft.com/library/vslangproj.projectproperties_properties.aspx)
namespace $rootnamespace$.Models
{
public struct CategoryInfo
{
public string categoryid;
public string description;
public string htmlUrl;
public string rssUrl;
public string title;
}
}
(6) 部署到 bin 目錄下
(7) 部署本身的Nuget服務器
https://github.com/NuGet/NuGetGallery#build-and-run-the-gallery-in-arbitrary-number-easy-steps
https://docs.microsoft.com/zh-cn/nuget/hosting-packages/nuget-server