探索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。构建非常简单:
选择Debug或者Release
右键单击解决方案,然后选择构建。
我可以听到你问:“但是Mac的主机呢,我需要一个吗?”因为我第一次问了同样的问题。 因为我们正在生成一个NuGet而不是一个iOS或Mac应用程序,我们不需要Mac构建主机。 我们正在建立针对Xamarin和Windows框架SDK。
解决方案成功完成后,您应该生成用于在IDE中显示文档的xml。 现在,您已准备好将新制作的程序集打包成NuGet程序包。 为了实现这一点,我们有一个方便的create-nuget.bat脚本,您可以从命令行按名称执行。
if "%DEBUG_VERSION%"=="" set DEBUG_VERSION=0 set /a DEBUG_VERSION=%DEBUG_VERSION%+1 pushd docs ..\tools\mdoc\mdoc.exe export-msxdoc -o Xamarin.Forms.Core.xml Xamarin.Forms.Core ..\tools\mdoc\mdoc.exe export-msxdoc -o Xamarin.Forms.Xaml.xml Xamarin.Forms.Xaml ..\tools\mdoc\mdoc.exe export-msxdoc -o Xamarin.Forms.Maps.xml Xamarin.Forms.Maps popd pushd .nuspec ..\.nuget\NuGet.exe pack Xamarin.Forms.nuspec -properties configuration=debug;platform=anycpu -Version 9.9.%DEBUG_VERSION% 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上打开一个请求并分享爱情。