每位 .NET 愛好者一定知道 NuGet 是一個超棒的套件管理工具,只要關鍵字下去,然後挑到喜歡的 Package,裝起來就 OK 了。但在內部開發的時候,我也想要把開發完的共用模組利用 NuGet 的方式分享給同事,其實不需要建立 NuGet Server,只需要用到 Share Folder 就可以達成了,今天限量就要來快速建立一個內部使用的 NuGet Server。
首先,我們要打包分享的模組,要打包的東西不外乎就是 dll 檔跟一些模組必要的其他檔案(例如:json 或 xml 設定檔),這些東西就先把專案用 Release 的組態 Build 出來(畢竟是要給其他人用的東西),接著就要來看看如何打包成 NuGet Package。
1. 先下載 NuGet Package Explorer (用 GUI 打包比較快速),開啟選擇 [Create a new package]。
2. 填寫這個 Package 的資訊(粗體字代表是必填欄位)。
下表為這些欄位的敘述:
3. 加入其他關連的 Package 或 Assembly。
這邊比較麻煩,必須要去確認 Package 專案參考了那些 dll 與那些 NuGet Package。
加入相依的 dll
3-1. 下拉 Assembly Name 欄位的值,選擇參考到的 .Net Framework dll。
3-2. 點選 [+] 加入。
加入相依的 NuGet Package
3-1. 按下 [Edit dependencies] 打開 Package Dependency Editor。
3-2. 按下 [+] 加入目標 Framework 設定。
3-3. 輸入目標 Framework (例如:net461 代表 .Net Framework 4.6.1)。
3-4. 按下方按紐打開 NuGet Package 清單,搜尋並選擇專案參考到的 NuGet Package 加入就完成了。
4. 在 Package Content 視窗按 [右鍵] 加入Package 相關內容檔案:
Package 可加入的資料夾種類可分為 5 種:
可以在 lib 資料夾內加入各種不同目標 Framework 版本的資料夾,裏頭放置各版本 Build 出來的 dll 與相關檔案。
建立好了就儲存起來,你會在儲存的目錄下看到 .nupkg 檔。
5. 開一個 Share Folder,將 .nupkg 檔丟到 Share Folder 裡面就完成了。
(注意:Share Folder 要設定權限,不然其他人會抓不到)
加入完成後我們來看看能不能抓的到 Package。
1. 打開 Visual Studio => [Tools] => [Options] => [NuGet Package Manager] => [Package Source]。
2. 加入剛剛建立的 Share Folder 位置。
3. 馬上關鍵字搜尋 NuGet Package,記得下拉 Package Source 搜尋比較快。
.Net Framework 建立 NuGet Package 的方式是像上面那樣比較麻煩的,但如果你的專案是 .Net Core 的話那真的會省很多工,因為 .Net Core 的精神就是以 NuGet Package 拼裝達到最輕量化的架構,所以 .Net Core 的 Class Library 有提供快速打包的功能:
限量用的是 Visual Studio 2017,不確定 Visual Studio 2015 裝 .Net Core 有沒有這功能
1. 在 .Net Core 專案按下 [右鍵] => 選擇 [Publish]。
2. 選擇 Share Folder 的位置後按下 [Publish] 就完成了。
學會了這招,在搭配程式模組化,其實開發程式就省了蠻多時間了。如果想要把程式貢獻給社會的話再來建真正的 NuGet Server 吧。
參考來源
Microsoft Docs - NuGet
首先,我們要打包分享的模組,要打包的東西不外乎就是 dll 檔跟一些模組必要的其他檔案(例如:json 或 xml 設定檔),這些東西就先把專案用 Release 的組態 Build 出來(畢竟是要給其他人用的東西),接著就要來看看如何打包成 NuGet Package。
1. 先下載 NuGet Package Explorer (用 GUI 打包比較快速),開啟選擇 [Create a new package]。
2. 填寫這個 Package 的資訊(粗體字代表是必填欄位)。
下表為這些欄位的敘述:
名稱
|
描述
|
Id
|
Package ID。為唯一值。
|
Version
|
|
Title
|
標題。如果沒有設定就會同Id值。
|
Authors
|
作者。若有多位則用逗號分隔。
|
Owners
|
所有者。與 Authors 相同,可能是組織。
|
Icon Url
|
Package Icon 位置。
|
Project Url
|
Package Project 位置。通常是 GitHub 或介紹此 Package 的網站。
|
License Url
|
Package License 位置。
|
Summary
|
摘要。會顯示在 Package下方。
|
Description
|
描述。點選 Package 時會顯示在預覽視窗。
|
Release Notes
|
註解。在每次的版本釋出時,註明這次釋出的說明。
|
Copyright
|
版權。
|
Language
|
Package 語言。例如:zh-tw, en-US…。
|
Tags
|
標籤。標註 Package 的分類,方便搜尋。
|
3. 加入其他關連的 Package 或 Assembly。
這邊比較麻煩,必須要去確認 Package 專案參考了那些 dll 與那些 NuGet Package。
加入相依的 dll
3-1. 下拉 Assembly Name 欄位的值,選擇參考到的 .Net Framework dll。
3-2. 點選 [+] 加入。
加入相依的 NuGet Package
3-1. 按下 [Edit dependencies] 打開 Package Dependency Editor。
3-2. 按下 [+] 加入目標 Framework 設定。
3-3. 輸入目標 Framework (例如:net461 代表 .Net Framework 4.6.1)。
3-4. 按下方按紐打開 NuGet Package 清單,搜尋並選擇專案參考到的 NuGet Package 加入就完成了。
4. 在 Package Content 視窗按 [右鍵] 加入Package 相關內容檔案:
Package 可加入的資料夾種類可分為 5 種:
名稱
|
描述
|
Content
|
一般檔案,例如XML, JSON…等。檔案會被複製到根目錄下。
|
lib
|
放置所有要被參考的.dll檔。
|
tools
|
放置一些在安裝過程中會執行PowerShell Script檔案(.ps1)。
|
build
|
放置客製化MSBuild的檔案(.props, .targets)
|
src
|
放置Source Code檔案(.cs)
|
可以在 lib 資料夾內加入各種不同目標 Framework 版本的資料夾,裏頭放置各版本 Build 出來的 dll 與相關檔案。
建立好了就儲存起來,你會在儲存的目錄下看到 .nupkg 檔。
5. 開一個 Share Folder,將 .nupkg 檔丟到 Share Folder 裡面就完成了。
(注意:Share Folder 要設定權限,不然其他人會抓不到)
加入完成後我們來看看能不能抓的到 Package。
1. 打開 Visual Studio => [Tools] => [Options] => [NuGet Package Manager] => [Package Source]。
2. 加入剛剛建立的 Share Folder 位置。
3. 馬上關鍵字搜尋 NuGet Package,記得下拉 Package Source 搜尋比較快。
.Net Framework 建立 NuGet Package 的方式是像上面那樣比較麻煩的,但如果你的專案是 .Net Core 的話那真的會省很多工,因為 .Net Core 的精神就是以 NuGet Package 拼裝達到最輕量化的架構,所以 .Net Core 的 Class Library 有提供快速打包的功能:
限量用的是 Visual Studio 2017,不確定 Visual Studio 2015 裝 .Net Core 有沒有這功能
1. 在 .Net Core 專案按下 [右鍵] => 選擇 [Publish]。
2. 選擇 Share Folder 的位置後按下 [Publish] 就完成了。
學會了這招,在搭配程式模組化,其實開發程式就省了蠻多時間了。如果想要把程式貢獻給社會的話再來建真正的 NuGet Server 吧。
參考來源
Microsoft Docs - NuGet
留言
張貼留言