構建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。構建非常簡單:
選擇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上打開一個請求並分享愛情。
本文出自 “wangccsy” 博客,轉載請與作者聯系!
構建Xamarin.Forms NuGet