1. 程式人生 > >構建Xamarin.Forms NuGet

構建Xamarin.Forms NuGet

android xamarin


探索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腳本,您可以從命令行按名稱執行。

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上打開一個請求並分享愛情。



本文出自 “wangccsy” 博客,轉載請與作者聯系!

構建Xamarin.Forms NuGet