探索Xamarin.Forms(并在代碼中變得更加舒適)的一個(gè)很好的方法是克隆存儲(chǔ)庫(kù)并運(yùn)行它,特別是任何ControlGallery項(xiàng)目。 我們知道您中有許多人已經(jīng)做到了這一點(diǎn),所以您可以采取的下一步是為XAMarin.Forms進(jìn)行自己的定制,以便在組織內(nèi)構(gòu)建和分發(fā)您自己的NuGet軟件包。 在這篇文章中,讓我們?cè)诒镜剡M(jìn)行一下,然后討論如何在Visual Studio Team Services(VSTS)上進(jìn)行配置。
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供隆安網(wǎng)站建設(shè)、隆安做網(wǎng)站、隆安網(wǎng)站設(shè)計(jì)、隆安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、隆安企業(yè)網(wǎng)站模板建站服務(wù),10多年隆安做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
構(gòu)建Xamarin.Forms Nuget本地最容易在Windows機(jī)器上完成。 如果您包括即將推遲使用的Windows Phone 8和8.1,或者您可以使用Visual Studio 2017,您將需要使用Visual Studio 2015。構(gòu)建非常簡(jiǎn)單:
選擇Debug或者Release
右鍵單擊解決方案,然后選擇構(gòu)建。
我可以聽(tīng)到你問(wèn):“但是Mac的主機(jī)呢,我需要一個(gè)嗎?”因?yàn)槲业谝淮螁?wèn)了同樣的問(wèn)題。 因?yàn)槲覀冋谏梢粋€(gè)NuGet而不是一個(gè)iOS或Mac應(yīng)用程序,我們不需要Mac構(gòu)建主機(jī)。 我們正在建立針對(duì)Xamarin和Windows框架SDK。
解決方案成功完成后,您應(yīng)該生成用于在IDE中顯示文檔的xml。 現(xiàn)在,您已準(zhǔn)備好將新制作的程序集打包成NuGet程序包。 為了實(shí)現(xiàn)這一點(diǎn),我們有一個(gè)方便的create-nuget.bat腳本,您可以從命令行按名稱執(zhí)行。
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
您可以直接更新,以使用您選擇的版本和構(gòu)建配置。 注意,當(dāng)前腳本設(shè)置為期望調(diào)試配置。 另外,請(qǐng)注意文檔正在被更新,然后生成NuGet。
完成后,NuGet軟件包將在您的根目錄中。
雖然您可以在Mac上構(gòu)建Xamarin.Forms,但我不推薦它。 您馬上必須修剪所有的Windows目標(biāo),這意味著你創(chuàng)建的任何NuGet只能在iOS,Android和Mac上工作。 如果你在Mac上,不能在Windows機(jī)器上構(gòu)建,那么在VSTS上建立就是為您而設(shè)的!
Visual Studio團(tuán)隊(duì)服務(wù)提供了豐富的任務(wù)來(lái)創(chuàng)建一個(gè)非常靈活的構(gòu)建解決方案,并為我們的需求:
獲取Xamarin.Forms源碼
恢復(fù)NuGet軟件包
構(gòu)建解決方案
生成文檔
打包NuGet
發(fā)布
聽(tīng)起來(lái)很容易,對(duì)吧?
首先,我們需要一個(gè)關(guān)于VSTS的項(xiàng)目。 從您的VSTS目標(biāo)網(wǎng)頁(yè)單擊新建項(xiàng)目并填寫您的首選項(xiàng)。 一旦創(chuàng)建,請(qǐng)轉(zhuǎn)到該項(xiàng)目的“構(gòu)建和發(fā)布”選項(xiàng)卡。 創(chuàng)建一個(gè)新的Build定義并開(kāi)始添加這些任務(wù)!
VSTS為各種常見(jiàn)場(chǎng)景提供了模板,但我們將從一個(gè)空進(jìn)程開(kāi)始。 對(duì)于“默認(rèn)代理隊(duì)列”,選擇托管。
為我們提供了一個(gè)任務(wù),那就是獲取資源。 選擇該任務(wù)并從您要拉出Xamarin.Forms代碼的位置進(jìn)行配置。
項(xiàng)目
Github
遠(yuǎn)程倉(cāng)庫(kù)
Subversion
像往常一樣,在我們可以構(gòu)建任何解決方案,包括Xamarin.Forms之前,你想確保任何NuGet依賴關(guān)系已被恢復(fù)。 Visual Studio在本地運(yùn)行構(gòu)建時(shí)默認(rèn)為此做。
單擊添加任務(wù)并添加“NuGet”任務(wù)。 在任務(wù)的版本下拉菜單中更改為0. *。 這提供了更容易地自定義NuGet參數(shù)的功能。 對(duì)于“解決路徑”,輸入“Xamarin.Forms.sln”,因?yàn)樗挥诖鎯?chǔ)庫(kù)的根目錄。
確保“安裝類型”設(shè)置為還原。
包括這些參數(shù):
-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;"
現(xiàn)在我們已經(jīng)準(zhǔn)備好構(gòu)建解決方案了。 添加另一個(gè)任務(wù),此時(shí)選擇“Visual Studio Build”。 再次指出“Xamarin.Forms.sln”。 根據(jù)您要在“平臺(tái)和配置”字段中構(gòu)建的內(nèi)容,添加可以更改的變量。
Platform:$(BuildPlatform)
Configuration:$(BuildConfiguration)
當(dāng)您稍后啟動(dòng)構(gòu)建時(shí),這些將是您可以設(shè)置的選項(xiàng)。
選中Clean復(fù)選框
構(gòu)建IDE所需的所有適當(dāng)?shù)膞ml文件以顯示文檔。 為此,您將需要一個(gè)批處理腳本和三個(gè)命令行任務(wù)。 您已經(jīng)掌握了查找任務(wù)并將其添加到該過(guò)程中,所以讓我們放棄重復(fù)。 以下是這些任務(wù)的設(shè)置。
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 Packager”任務(wù)并對(duì)其進(jìn)行配置。
Version 0.*
Patch to the nuspec:.nuspec/Xamarin.Forms.nuspec
Configuration to Package:$(BuildConfiguration)
Addition build properties:IdAppend=.Custom
也許你想發(fā)布給你控制的MyGet Feed。 你可以在這里做。 為了簡(jiǎn)單起見(jiàn),我們將該包放在VSTS項(xiàng)目的文件夾中。 添加發(fā)布構(gòu)建工件的任務(wù)。
保存并排隊(duì)您的構(gòu)建。 從“構(gòu)建”選項(xiàng)卡,您可以訪問(wèn)構(gòu)建歷史記錄,查看您的工作狀態(tài),任何錯(cuò)誤等。
現(xiàn)在,您將全部構(gòu)建Xamarin.Forms并在您自己的組織內(nèi)分發(fā)! 如果您還沒(méi)有VSTS帳戶,請(qǐng)注冊(cè)免費(fèi)開(kāi)始使用。 當(dāng)然,如果您正在修復(fù)或定制每個(gè)人都可以從中受益,請(qǐng)?jiān)贕itHub上打開(kāi)一個(gè)請(qǐng)求并分享愛(ài)情。