用Nuget部署程序包


用Nuget部署程序包

 

Nuget是.NET程序包管理工具(類似linux下的npm等),程序員可直接用簡單的命令行(或VS)下載包。好處:

(1)避免類庫版本不一致帶來的問題。GitHub是管理源代碼的,這個是管理生成的類庫/包的。

(2)可自動處理類庫依賴:

(3)可指定下載歷史版本: install-package name –version 1.0.2

(4)可部署私有包服務器: https://docs.microsoft.com/en-us/nuget/hosting-packages/overview

 

1.    注冊賬號

http://www.nuget.org

可用微軟賬戶登錄注冊

2.    生成ApiKey

 

(1)       這個key最多只能用一年。超出了怎么辦?不知道有沒有續期措施。

(2)       Glob pattern:匹配模式,用戶搜索時用的?

 

3.    發布包方案一:使用命令行

(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, 發布

4.    發布包方案二:使用NuGetPackageExplorer

參考:https://github.com/NuGetPackageExplorer/NuGetPackageExplorer

(1)安裝並運行:Microsoft Store > NuGet Package Explorer

(2)新建包 > 添加文件夾/文件

 

可添加的目錄類別包括:

build

輸出到bin目錄

content

原樣拷貝

lib

添加到引用

src

源碼拷貝

tools

 

(3)發布,填寫入你的key

 

5.    安裝測試

在vs>工具>Nuget包管理器>管理解決方案的Nuget程序包>瀏覽:

 

或者直接在程序包管理器控制台中用命令行

         Install-package packageName

 

部署后自動將引用、資源、配置等自動發布到新程序。

 

注意,包發布后有時延。

 

6.    其它

 

(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

 

 7. NetCore/NetStandard項目的Nuget包

 

這就更簡單了,vs項目右鍵直接有打包選項,簡化了很多,也可以直接編譯時就生成包。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM