构建Xamarin.Forms NuGet

简介: 探索Xamarin.Forms(并在代码中变得更加舒适)的一个很好的方法是克隆存储库并运行它,特别是任何ControlGallery项目。 我们知道您中有许多人已经做到了这一点,所以您可以采取的下一步是为XAMarin.Forms进行自己的定制,以便在组织内构建和分发您自己的NuGet软件包。

探索Xamarin.Forms(并在代码中变得更加舒适)的一个很好的方法是克隆存储库并运行它,特别是任何ControlGallery项目。 我们知道您中有许多人已经做到了这一点,所以您可以采取的下一步是为XAMarin.Forms进行自己的定制,以便在组织内构建和分发您自己的NuGet软件包。 在这篇文章中,让我们在本地进行一下,然后讨论如何在Visual Studio Team Services(VSTS)上进行配置。

本地设置

Windows构建所有

构建Xamarin.Forms Nuget本地最容易在Windows机器上完成。 如果您包括即将推迟使用的Windows Phone 8和8.1,或者您可以使用Visual Studio 2017,您将需要使用Visual Studio 2015。构建非常简单:

  1. 选择Debug或者Release

  2. 右键单击解决方案,然后选择构建。

我可以听到你问:“但是Mac的主机呢,我需要一个吗?”因为我第一次问了同样的问题。 因为我们正在生成一个NuGet而不是一个iOS或Mac应用程序,我们不需要Mac构建主机。 我们正在建立针对Xamarin和Windows框架SDK。

解决方案成功完成后,您应该生成用于在IDE中显示文档的xml。 现在,您已准备好将新制作的程序集打包成NuGet程序包。 为了实现这一点,我们有一个方便的create-nuget.bat脚本,您可以从命令行按名称执行。

点击(此处)折叠或打开

  1. if "%DEBUG_VERSION%"=="" set DEBUG_VERSION=0
  2.     set /a DEBUG_VERSION=%DEBUG_VERSION%+1
  3.     pushd docs
  4.     ..\tools\mdoc\mdoc.exe export-msxdoc -o Xamarin.Forms.Core.xml Xamarin.Forms.Core
  5.     ..\tools\mdoc\mdoc.exe export-msxdoc -o Xamarin.Forms.Xaml.xml Xamarin.Forms.Xaml
  6.     ..\tools\mdoc\mdoc.exe export-msxdoc -o Xamarin.Forms.Maps.xml Xamarin.Forms.Maps
  7.     popd
  8.     pushd .nuspec
  9.     ..\.nuget\NuGet.exe pack Xamarin.Forms.nuspec -properties configuration=debug;platform=anycpu -Version 9.9.%DEBUG_VERSION%
  10.     popd

您可以直接更新,以使用您选择的版本和构建配置。 注意,当前脚本设置为期望调试配置。 另外,请注意文档正在被更新,然后生成NuGet。

完成后,NuGet软件包将在您的根目录中。

在OS X上生成

虽然您可以在Mac上构建Xamarin.Forms,但我不推荐它。 您马上必须修剪所有的Windows目标,这意味着你创建的任何NuGet只能在iOS,Android和Mac上工作。 如果你在Mac上,不能在Windows机器上构建,那么在VSTS上建立就是为您而设的!

在VSTS上云构建

Visual Studio团队服务提供了丰富的任务来创建一个非常灵活的构建解决方案,并为我们的需求:

  • 获取Xamarin.Forms源

  • 恢复NuGet软件包

  • 构建解决方案

  • 生成文档

  • 打包NuGet

  • 发布

听起来很容易,对吧?

首先,我们需要一个关于VSTS的项目。 从您的VSTS目标网页单击新建项目并填写您的首选项。 一旦创建,请转到该项目的“构建和发布”选项卡。 创建一个新的Build定义并开始添加这些任务!

获取Xamarin.Form源码

VSTS为各种常见场景提供了模板,但我们将从一个空进程开始。 对于“默认代理队列”,选择托管。

为我们提供了一个任务,那就是获取资源。 选择该任务并从您要拉出Xamarin.Forms代码的位置进行配置。

  • 项目

  • Github

  • 远程仓库

  • Subversion

恢复NuGet包

像往常一样,在我们可以构建任何解决方案,包括Xamarin.Forms之前,你想确保任何NuGet依赖关系已被恢复。 Visual Studio在本地运行构建时默认为此做。

单击添加任务并添加“NuGet”任务。 在任务的版本下拉菜单中更改为0. *。 这提供了更容易地自定义NuGet参数的功能。 对于“解决路径”,输入“Xamarin.Forms.sln”,因为它位于存储库的根目录。

确保“安装类型”设置为还原。

包括这些参数:

-source "https://www.nuget.org/api/v2;https://www.myget.org/F/nuget;https://www.myget.org/F/xamarinforms-ci/api/v3/index.json;https://www.myget.org/F/yoga/api/v3/index.json;https://www.myget.org/F/xamprojectci/api/v3/index.json;"

构建解决方案

现在我们已经准备好构建解决方案了。 添加另一个任务,此时选择“Visual Studio Build”。 再次指出“Xamarin.Forms.sln”。 根据您要在“平台和配置”字段中构建的内容,添加可以更改的变量。

Platform: $(BuildPlatform)
Configuration: $(BuildConfiguration)

当您稍后启动构建时,这些将是您可以设置的选项。

选中Clean复选框

生成文档

构建IDE所需的所有适当的xml文件以显示文档。 为此,您将需要一个批处理脚本和三个命令行任务。 您已经掌握了查找任务并将其添加到该过程中,所以让我们放弃重复。 以下是这些任务的设置。

Batch Script
Display Name: Update XML Documentation
Path: update-docs-windows.bat

Command Line
Display Name: Generate XML Documentation (Core)
Tool: $(Build.SourcesDirectory)\tools\mdoc\mdoc.exe
Arguments: export-msxdoc -o Xamarin.Forms.Core.xml Xamarin.Forms.Core
Working Folder: docs

Command Line
Display Name: Generate XML Documentation (XAML)
Tool: $(Build.SourcesDirectory)\tools\mdoc\mdoc.exe
Arguments: export-msxdoc -o Xamarin.Forms.Xaml.xml Xamarin.Forms.Xaml
Working Folder: docs

Command Line
Display Name: Generate XML Documentation (XAML)
Tool: $(Build.SourcesDirectory)\tools\mdoc\mdoc.exe
Arguments: export-msxdoc -o Xamarin.Forms.Maps.xml Xamarin.Forms.Maps
Working Folder: docs

打包NuGet

最后,你一直在等待如此耐心的步骤! 添加“NuGet Packager”任务并对其进行配置。

Version 0.*
Patch to the nuspec: .nuspec/Xamarin.Forms.nuspec
Configuration to Package: $(BuildConfiguration)
Addition build properties: IdAppend=.Custom

发布NuGet

也许你想发布给你控制的MyGet Feed。 你可以在这里做。 为了简单起见,我们将该包放在VSTS项目的文件夹中。 添加发布构建工件的任务。

获得构建

保存并排队您的构建。 从“构建”选项卡,您可以访问构建历史记录,查看您的工作状态,任何错误等。

准备.设置.生成

现在,您将全部构建Xamarin.Forms并在您自己的组织内分发! 如果您还没有VSTS帐户,请注册免费开始使用。 当然,如果您正在修复或定制每个人都可以从中受益,请在GitHub上打开一个请求并分享爱情。

目录
相关文章
|
API Android开发 iOS开发
使用.NET标准构建(生成)Xamarin.Forms应用程序
.NET标准库将我们的代码带入更多平台,并为基础类库提供更多API,从而构建出惊人的应用程序。开发人员已经能够使用Xamarin的.NET标准库来跨平台共享代码,并且使用Xamarin.Forms长久地在iOS,Android,UWP,macOS之间创建一个共享的用户界面。
1068 0
|
6月前
|
开发工具 Android开发 iOS开发
使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件
使用vs2019学习xamarin时,创建新程序。使用模拟器真机等测试都报错如下图错误: ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231030-de8ce5fd.png?x-cos-security-token=r4KyZDEowPT0kGTL0LqE8EnwfN1Nzexadb05dcffed3939ff8d7591c528c01706nvpGSE93QwHpZM8NwhJNTZctNRQa0l3KDhEnqj8P7d8t
63 0
使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件
|
Java C# Android开发
.NET(WinCE、WM)开发转Android开发 ——Xamarin和Smobiler对比
WinCE从1995年诞生至今,已有20多年的发展历史,行业成熟方案覆盖范围广,从车载、工控、手持机都有涉及,且方案成熟。 近些年,Android以后来居上的态势,逐渐渗透至各行业领域,硬件手持大厂也把产品线重心向Android手持迁移,基于Android的行业解决方案越来越成熟,WinCE的开发人才流失,在WinCE解决方案上吃老本的企业寻求转型。
|
Web App开发 测试技术 Android开发
xamarin开发android收集的一些工具
原文:xamarin开发android收集的一些工具 xamarin开发android收集的一些工具 工欲善其事,必先利其器,从16年下半年开始做xamarin相关的开发,平时使用的一些工具和google插件给大家分享一下,都有下载地址,持续更新。
1487 0
|
XML Android开发 数据格式
Xamarin android沉浸式状态栏
虽然关于android ”沉浸式“状态栏有很多博客介绍过,从小菜到大神无一例外。我第一次看到这种”沉浸“式的效果我也以为真的是这么叫,然而根本不是这么回事,完全是人云亦云。它真正的学名应该叫“透明状态栏”。
2098 0
|
存储 数据库 Android开发
Xamarin android使用Sqlite做本地存储数据库
android使用Sqlite做本地存储非常常见(打个比方就像是浏览器要做本地存储使用LocalStorage,貌似不是很恰当,大概就是这个意思)。 SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。
1314 0
|
前端开发 Android开发
Xamarin android中使用signalr实现即时通讯
前面几天也写了一些signalr的例子,不过都是在Web端,今天我就来实践一下如何在xamarin android中使用signalr,刚好工作中也用到了这个,也算是总结一下学到的东西吧,希望能帮助你们,更快地熟悉使用xamarin android进行即时通讯。
1389 0
|
XML Android开发 数据格式
Xamarin android spinner的使用方法
xamarin  android spinner的如何使用呢,大多数web开发人员经常会听到DropDownList 和Combobox 这种下拉选择框,spinner 的意思差不多,有道词典一下意思是“下拉列表”、“台湾斯普”,“下拉列表组件”,“微调控件”。
1519 0
|
XML Java Android开发
Xamarin android如何反编译apk文件
Xamarin android 如何反编译 apk文件 这里推荐一款XamarinAndroid开发的小游戏,撸棍英雄,游戏很简单,的确的是有点大。等一下我们来翻翻译这个Xamarin Android 开发的小游戏 下载链接:http://shouji.
1336 0
|
定位技术 开发工具 Android开发
Xamarin android如何调用百度地图入门示例(一)
在Xamarin android如何调用百度地图呢? 首先我们要区分清楚,百度地图这是一个广泛的概念,很多刚刚接触这个名词”百度地图api”,的确是泛泛而谈,我们来看一下百度地图的官网: android上使用百度地图的有Android地图SDK,定位SDK,导航SDK,全景SDK.
1421 0