[NuGet] 使用 NuGet Package Explorer 將元件部署至 NuGet Server

[NuGet] 使用 NuGet Package Explorer 將元件部署至 NuGet Server

續上篇,http://www.dotblogs.com.tw/yc421206/archive/2014/05/07/144993.aspx

我們實作了 NuGet Server,緊接著就是要把寫好的元件部署,

元件部署一直以來都是件苦差事,我們在部署元件時,常常會碰到的問題

  1. 元件所依的元件
  2. 元件組態設定
  3. 元件所需的樣版

沒有 Nuget 的時候,我們可能需要寫一份手冊告訴 Developer,要參考什麼元件,組態檔要加什麼參數,甚至還要有樣版程式

為什麼我們要用NuGet Server?它幫我們解決了這些問題,只要利用工具將,組態參數、樣版程式、相依元件等相關設定,設定好之後,Developer 就能順利的使用你開發的元件

準備工作

  1. 打包工具 NuGet Package Explorer v3.7
    http://nuget.codeplex.com/releases/view/59864
  2. 已開發好的元件

 

本文章節

建立新的打包專案:

設定 Package metadata:
    描述打包內容:
    設定 GAC 相依元件:
    設定 NuGet Server 相依元件:
    元件參考(其實它是過濾相依元件,這實在令人難懂):

設定 Package Content:
    加入.NET Framework版本資料夾:
    加入組態設定:

Analyze Package:

Publish Package:

從自架的 NuGet Server安裝元件:

異動:


建立新的打包專案:

image

 

設定 Package metadata:

描述打包內容:

SNAGHTML3e8c42a

 

image

 

設定 GAC 相依元件:

image

 

設定 NuGet Server 相依元件:

image

 

image

image

image

 

元件參考(其實它是過濾相依元件,這實在令人難懂):

image

 

設定 Package Content:

加入.NET Framework版本資料夾:

image

 

在這裡就看你開發的元件用了什麼 .NET 版本

image

 

加入符合 .NET 版本的元件

image

 

加入組態設定:

image

 

新增一個 App.config.transform/Web.config.transform

image

 

把元件會用到的組態參數,填入內容

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="Test" value="Test123" />
  </appSettings>
</configuration>

 

按下存檔,按下箭頭,離開編輯頁面

image

 

若要編輯組態,它在一個不起眼的地方

image

 

按 Ctrl+s 存檔後,就可以看到 Package metadata 裡的 Filter 就是我剛剛設定的

image

 

Analyze Package:

剛剛我設定 Filtered Assembly References ,它在 Package contents 找不到相關檔案,所以報錯,要先把剛剛的設定刪掉

image

 

刪除設定

image

 

刪除後再跑一次 Analyze Package,沒有任何問題,就可以繼續往下走

image

 

Publish Package:

image

 

Publish Url :這就看你的位置在哪,這裡是用我架設的 Server

Publish key:這是我架設的Server的 apiKey

 

沒有任何的紅色訊息,應該就表示發行成功

image

 

API Key,這是我的Server Web.config

image

 

打包後的檔案會上傳到 NuGet Server 的 Packages 目錄

image

 

並以 *.nupkg 副檔名為後綴

image

 

從自架的 NuGet Server安裝元件:

設定位置,這在上篇已經提過,就不在詳述

image

 

發行成功後便能在 NutGet Server上看到它,按下安裝,它已經在幫我裝 NuGet Server 上的相依元件

image

 

安裝完成後,相關元件以及組態設定都處理好了,是不是相當的方便

image

 

PS.Nuget Server會將伺服器上的元件下載到方案資料夾內的 packages 資料夾

image

 

異動:

若你的打包檔有異動,

  1. 用戶端在使用了,Package Metadata 的 Version 也要跟著變,否則用戶端的 nupkg 不會下載,因為 NuGet Server 是採用版本差異下載,已存在的版本號它是不會 上傳/下載 的
  2. 沒有用戶端使用,只是你自行安裝測試,只需要把測試方案裡的 packages 相關資料砍了就可以
    image 

文章出自:http://www.dotblogs.com.tw/yc421206/archive/2014/08/15/146268.aspx

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo