[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套件所提供的类别了。
范例下载
范例程序代码:点此下载