[Xamarin.Android] 發佈NuGet套件

摘要:[Xamarin.Android] 發佈NuGet套件

[Xamarin.Android] 發佈NuGet套件

前言

在Xamarin中,可以將自己開發的專案包裝成為NuGet套件發佈至NuGet Server,來提供其他開發人員使用。本篇介紹如何封裝並發佈NuGet套件,讓開發人員能自行建立NuGet Server中的NuGet套件,為自己留個紀錄也希望能幫助到有需要的開發人員。

前言01

封裝

  1. 首先將要封裝成NuGet套件的程式碼,建立為Class Library (Android)類型的專案。在專案完成編譯之後取得產出的dll檔,這個dll檔就是要封裝進NuGet套件發佈給其他開發人員使用的共用元件。而這邊需要先將dll檔,放到一個封裝資料夾中備用。

    封裝01

    封裝02

  2. 接著到NuGet官網下載NuGet.exe用來封裝NuGet套件,這邊同樣的將NuGet.exe放到封裝資料夾中備用。

    封裝03

    封裝04

  3. 在存放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>
    

    封裝05

  4. 接著開啟命令提示字元,依照下列的執行參數,來執行先前取得備用的NuGet.exe。透過這樣的執行參數設定,NuGet.exe就會依照nuspec檔所描述的套件資訊,來建立副檔名為nupkg的NuGet封裝檔。而建立起副檔名為nupkg的nupkg檔,也就完成了整個NuGet套件封裝的流程。

    NuGet.exe pack CustomControlSample.nuspec
    

    封裝06

    封裝07

發佈

透過NuGet.exe建立nupkg檔之後,接著就是要將封裝好的NuGet套件發佈到NuGet Server。發佈套件到NuGet Server有很多種方式,而NuGet Server也可分為NuGet官方伺服器、私有企業伺服器...等等。本篇文章的範例介紹如何透過NuGet官方網站的功能,來發佈NuGet套件到NuGet官方伺服器。

  1. 開啟NuGet官網,並且在登入後進入Upload Package功能頁面。

    發佈01

  2. 點選頁面上的「選擇檔案」按鈕,並且選擇先前透過NuGet.exe所建立的nupkg檔,然後點選「Upload」按鈕來上傳檔案。

    發佈02

  3. 上傳nupkg檔之後,頁面會顯示目前上傳的NuGet套件資訊內容。如果發現資訊內容有誤,也可以在這個頁面直接編輯。當確認過資訊內容沒有問題之後,就可以點選頁面最下方的「Submit」按鈕來發佈NuGet套件。

    發佈03

  4. 發佈NuGet套件的過程會比較久一點,花點耐心等候,就可以看到發佈完成的NuGet套件主頁。

    發佈04

使用

發佈NuGet套件到NuGet官方伺服器之後,其他開發人員在Xamarin.Android專案中,就可以透過NuGet套件管理工具來下載並且使用NuGet套件。

  1. 在Xamarin.Android專案中,選擇專案後點擊右鍵並且選擇「管理NuGet套件...」,來開啟NuGet套件管理工具。

    使用01

  2. 在NuGet套件管理工具中,輸入先前發佈的NuGet套件名稱,就可以在管理工具中找到該套件。

    使用02

  3. 接著點選套件上的「安裝」按鈕,就可以將NuGet套件下載並且安裝到Xamarin.Android專案之中。

    使用03

    使用04

  4. 後續在Xamarin.Android專案中,就可以直接使用NuGet套件所提供的類別了。

    使用05

範例下載

範例程式碼:點此下載

期許自己
能以更簡潔的文字與程式碼,傳達出程式設計背後的精神。
真正做到「以形寫神」的境界。