摘要:[Xamarin.Android] 發佈NuGet套件
[Xamarin.Android] 發佈NuGet套件
前言
在Xamarin中,可以將自己開發的專案包裝成為NuGet套件發佈至NuGet Server,來提供其他開發人員使用。本篇介紹如何封裝並發佈NuGet套件,讓開發人員能自行建立NuGet Server中的NuGet套件,為自己留個紀錄也希望能幫助到有需要的開發人員。
封裝
-
首先將要封裝成NuGet套件的程式碼,建立為Class Library (Android)類型的專案。在專案完成編譯之後取得產出的dll檔,這個dll檔就是要封裝進NuGet套件發佈給其他開發人員使用的共用元件。而這邊需要先將dll檔,放到一個封裝資料夾中備用。
-
接著到NuGet官網下載NuGet.exe用來封裝NuGet套件,這邊同樣的將NuGet.exe放到封裝資料夾中備用。
-
在存放dll檔、NuGet.exe的封裝資料夾中,使用記事本應用程式加入一個副檔名為nuspec的文字檔,並且於內容中加入下列Xml格式的資料。
<?xml version="1.0"?> <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <metadata> <id>CustomControlSample</id> <version>1.0.0</version> <title>CustomControlSample</title> <authors>Clark</authors> <owners>Clark</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>CustomControlSample</description> <copyright>Copyright © 2014</copyright> <dependencies> </dependencies> </metadata> <files> <file src="CustomControlSample.dll" target="lib\MonoAndroid" /> </files> </package>
副檔名為nuspec的nuspec檔,是用來描述NuGet套件資訊的Xml格式文字檔。其中比較重要的資訊標籤如下:
- id:編號。
- version:版本。
- title:名稱。
- authors:作者
- owners:擁有者
- description:說明
- copyright:版權宣告
- files:共用元件集合
- file:共用元件
在這其中比較需要注意的是file標籤。file標籤的src參數內容,定義共用元件的檔案名稱及檔案路徑。而另一個file標籤的target參數內容,則是定義共用元件的目標平台。(目標平台是Xamarin.Android內容為lib\MonoAndroid、目標平台為Xamarin.iOS內容為lib\MonoTouch)
<files> <file src="CustomControlSample.dll" target="lib\MonoAndroid" /> </files>
-
接著開啟命令提示字元,依照下列的執行參數,來執行先前取得備用的NuGet.exe。透過這樣的執行參數設定,NuGet.exe就會依照nuspec檔所描述的套件資訊,來建立副檔名為nupkg的NuGet封裝檔。而建立起副檔名為nupkg的nupkg檔,也就完成了整個NuGet套件封裝的流程。
NuGet.exe pack CustomControlSample.nuspec
發佈
透過NuGet.exe建立nupkg檔之後,接著就是要將封裝好的NuGet套件發佈到NuGet Server。發佈套件到NuGet Server有很多種方式,而NuGet Server也可分為NuGet官方伺服器、私有企業伺服器...等等。本篇文章的範例介紹如何透過NuGet官方網站的功能,來發佈NuGet套件到NuGet官方伺服器。
-
開啟NuGet官網,並且在登入後進入Upload Package功能頁面。
-
點選頁面上的「選擇檔案」按鈕,並且選擇先前透過NuGet.exe所建立的nupkg檔,然後點選「Upload」按鈕來上傳檔案。
-
上傳nupkg檔之後,頁面會顯示目前上傳的NuGet套件資訊內容。如果發現資訊內容有誤,也可以在這個頁面直接編輯。當確認過資訊內容沒有問題之後,就可以點選頁面最下方的「Submit」按鈕來發佈NuGet套件。
-
發佈NuGet套件的過程會比較久一點,花點耐心等候,就可以看到發佈完成的NuGet套件主頁。
使用
發佈NuGet套件到NuGet官方伺服器之後,其他開發人員在Xamarin.Android專案中,就可以透過NuGet套件管理工具來下載並且使用NuGet套件。
-
在Xamarin.Android專案中,選擇專案後點擊右鍵並且選擇「管理NuGet套件...」,來開啟NuGet套件管理工具。
-
在NuGet套件管理工具中,輸入先前發佈的NuGet套件名稱,就可以在管理工具中找到該套件。
-
接著點選套件上的「安裝」按鈕,就可以將NuGet套件下載並且安裝到Xamarin.Android專案之中。
-
後續在Xamarin.Android專案中,就可以直接使用NuGet套件所提供的類別了。
範例下載
範例程式碼:點此下載
能以更簡潔的文字與程式碼,傳達出程式設計背後的精神。
真正做到「以形寫神」的境界。