我相信每個(gè)人都熟悉使用大多數(shù)解決方案模板中的Debug和Release配置。 以Debug模式構(gòu)建項(xiàng)目時(shí)使用Debug配置,使用Release模式構(gòu)建項(xiàng)目時(shí)使用Release配置,這一點(diǎn)似乎很明顯。然而,可能不太清楚的是切換配置時(shí)實(shí)際發(fā)生了什么,或者如何添加自己的自定義配置。今天,我們將深入了解構(gòu)建配置的世界,看看它們?nèi)绾文艽蟠筇岣吣臉?gòu)建時(shí)間和生產(chǎn)率。
七臺河網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),七臺河網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為七臺河1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個(gè)售后服務(wù)好的七臺河做網(wǎng)站的公司定做!
簡單地說,配置是一組項(xiàng)目屬性。在默認(rèn)的Debug配置中,例如, debugging會啟用,在Release配置中不會啟用Debug。您可以設(shè)置在每個(gè)配置中使用的鏈接器選項(xiàng),要構(gòu)建什么架構(gòu)(CPU),等等。您還可以進(jìn)一步定義平臺,以便根據(jù)是否為設(shè)備或仿真器構(gòu)建,可以有單獨(dú)的項(xiàng)目設(shè)置。換言之,你也可以在你的項(xiàng)目中,通過配置|平臺來進(jìn)行每一個(gè)項(xiàng)目的設(shè)置。
如何編輯和添加一個(gè)配置,我們將從一個(gè)模板Android項(xiàng)目開始:
在VS for Mac中創(chuàng)建一個(gè)新的“Android App”: New Project > Android > App > Android App.
在VS for Windows 創(chuàng)建一個(gè) “Single-View App (Android)”: 創(chuàng)建new project… > Android > Single-View App (Android).
該模板創(chuàng)建了一個(gè)簡單的Android應(yīng)用程序,其中有一個(gè)點(diǎn)擊計(jì)數(shù)的按鈕。它有兩個(gè)配置默認(rèn)設(shè)置,Debug和Release,和一個(gè)平臺,AnyCPU。這些只是沒有任何內(nèi)在含義的名字,除了考慮使用配置時(shí)。隨后我們將增加兩個(gè)新配置,名字叫DebugDevice 和DebugEmulator。這將使我們能夠在調(diào)試到設(shè)備(ARM)或仿真器(x86)時(shí)快速設(shè)置所需的項(xiàng)目選項(xiàng)/屬性。 每個(gè)只為設(shè)備或仿真器所需的架構(gòu)構(gòu)建,減少開發(fā)期間的構(gòu)建時(shí)間。
首先,讓我們看看兩個(gè)默認(rèn)Debug和Release配置之間有什么不同。為此,右鍵單擊“解決方案資源管理器”中的項(xiàng)目并選擇“選項(xiàng)”(VS for Mac)或“屬性”(VS for Windows),打開項(xiàng)目屬性。一旦項(xiàng)目選項(xiàng)/屬性打開,您將在下拉列表中看到配置和平臺字段,選擇要查看屬性設(shè)置的配置和平臺。
下拉可能不存在(VS for Mac)或禁用(VS for Windows),這意味著您選擇的設(shè)置頁面上的設(shè)置是全局的,即它們將應(yīng)用于所有配置和平臺。你能夠在構(gòu)建>全局設(shè)置而查看(VS for Mac)或者在應(yīng)用設(shè)置頁查看(VS for Windows)。 默認(rèn)Debug和Release配置的項(xiàng)目設(shè)置中的大部分差異在上面所示的Android構(gòu)建/ Android選項(xiàng)設(shè)置頁面中。打開項(xiàng)目選項(xiàng)/屬性,在左側(cè)選擇Android構(gòu)建(VS for Mac)/ Android選項(xiàng)(VS for Windows)。確保在配置下拉的頂部選擇Debug。注意在VS for Mac中選擇了“Use Shared Mono Runtime”或者在VS for Windows中選擇了“Use Shared Runtime” ,以及 “Fast Assembly Deployment” (VS for Mac) / “Use Fast Deployment” (VS for Windows) 選項(xiàng)。
這些都是調(diào)試時(shí)的好選擇,因?yàn)樗鼈冊陂_發(fā)應(yīng)用程序時(shí)會減少構(gòu)建和部署時(shí)間,但是他們根本不擅長構(gòu)建一個(gè)Release版本,因?yàn)榻K端用戶不太可能在他們的Android設(shè)備上安裝一個(gè)共享的單運(yùn)行時(shí),所以應(yīng)用程序根本就不能運(yùn)行,因?yàn)楦揪蜎]有運(yùn)行時(shí)。對于Release 構(gòu)建你要禁用這個(gè)選項(xiàng)。如果現(xiàn)在在配置中選擇Release版,在頂部下拉,您將看到默認(rèn)Release版本配置禁用了這些選項(xiàng)。
您可以檢查各個(gè)配置的鏈接器行為:
在VS for Mac: 在Android構(gòu)建頁面中選擇“Linker”選項(xiàng)卡。你將看到在Debug配置中 “Linking
Behaviour”設(shè)置為 “Don’t Link” 面在Release配置中設(shè)置為 “Link SDK assemblies only” 。
在VS for Windows: 在Android選項(xiàng)頁面中滾動到“Linker Properties”
一節(jié)。你將看到在Debug配置中 “Linking” 選項(xiàng)被設(shè)置為 “None” 而在Release配置中設(shè)置為 “SDK assemblies
only”。
這些默認(rèn)選項(xiàng)允許在調(diào)試期間更快地生成,并為您的版本構(gòu)建提供更小的應(yīng)用程序包。
在高級選項(xiàng)卡(Mac)/按鈕(Windows)允許你設(shè)置當(dāng)你構(gòu)建Debug或Release時(shí)使用哪種CPUs(ABIs)。請注意,默認(rèn)情況下Debug配置允許為所有可能的CPUs構(gòu)建。您構(gòu)建的每一個(gè)CPU都需要時(shí)間,因此,精簡這一點(diǎn)可能很好,所以我們只為CPU構(gòu)建,我們將運(yùn)行應(yīng)用程序。如果我們只測試x86仿真器,然后我們只能建立x86和取消選擇其他不需要的Abis。繼續(xù)取消選擇所有但x86使用高級選項(xiàng)/按鈕。
祝賀你,您現(xiàn)在剛剛編輯了一個(gè)配置。編輯配置就像打開項(xiàng)目選項(xiàng)/屬性一樣簡單,選擇要更改設(shè)置的配置,并更改這些設(shè)置。
如果調(diào)試過程中只需選擇一個(gè)配置,就可以輕松地選擇在哪一個(gè)體系結(jié)構(gòu)上構(gòu)建,這不是很好嗎?如果調(diào)試設(shè)備我選擇一個(gè)配置,DebugDevice,如果是為模擬器構(gòu)建,我選擇DebugEmulator。讓我們把那個(gè)設(shè)置好。
在Visual Studio for Mac中添加一個(gè)配置:
在解決方案瀏覽器中雙擊解決方案來打開解決方案選項(xiàng)。
選擇左側(cè)的 Build > Configurations on the left (不是 Run > Configurations).
因?yàn)槲覀冃枰狣ebug配置的變體,在“配置”列表中選擇Debug并單擊“Copy”。這將拷貝當(dāng)前的Debug設(shè)置到你的新配置中。
輸入這個(gè)配置的名字,比如DebugDevice。
平臺保持默認(rèn)的Any CPU選項(xiàng)。
點(diǎn)擊“OK”。
在DebugEmulator配置中重復(fù)4-8步。
在 Visual Studio (Windows)中添加一個(gè)配置:
通過Build > Configuration Manager菜單中,打開配置管理器。
點(diǎn)擊Active Solution Configuration下拉框并選擇 “New”。
在名字字段輸入 DebugDevice。
在 “Copy settings from”下拉列表選擇Debug。
確保選中了 “Create new project configurations” 選項(xiàng)。
點(diǎn)擊OK。
2 – 6 在名字字段使用ebugEmulator,并重復(fù)2 – 6步。
現(xiàn)在,在列表中你將看到四個(gè)配置項(xiàng),Debug, DebugDevice, DebugEmulator, 以及Release。
現(xiàn)在,您只需打開Android項(xiàng)目選項(xiàng)并對這兩個(gè)新配置進(jìn)行所需的更改:
打開 Android 項(xiàng)目選項(xiàng)。
選擇Android Build (Mac) / Android Options (Windows) > Advanced 選項(xiàng)卡。
從配置下拉列表選擇DebugDevice.
除了armeabi-v7a之外支持ABIs都取消選擇。
從配置下拉列表選擇DebugEmulator.
除了x86之外所有支持的ABIs都取消選擇。
你可以現(xiàn)在無論何時(shí)你想調(diào)試使用實(shí)際的Android設(shè)備的選擇DebugDevice,你可以當(dāng)你想調(diào)試一個(gè)x86模擬器選擇DebugEmulator。您的調(diào)試構(gòu)建會更快,因?yàn)槟粸樗璧捏w系結(jié)構(gòu)構(gòu)建。
祝賀您,現(xiàn)在已經(jīng)添加了兩個(gè)配置,并為特定調(diào)試場景設(shè)置它們。
我們所做的工作是可行的,但是在設(shè)備或仿真器的構(gòu)建之間定義平臺而不是配置可能更好。您會注意到這是默認(rèn)的IOS項(xiàng)目。有iOS項(xiàng)目定義兩個(gè)平臺,iPhone 和iPhoneSimulator。如果我們喜歡,我們也可以這樣做。對于這個(gè)練習(xí),開始一個(gè)新的Xamarin形式工程,PCL或共享型不該鍛煉。
在Xamarin/Visual Studio for Mac添加一個(gè)平臺:
在解決方案瀏覽器中通過雙擊解決方案打開解決方案選項(xiàng)。
在左側(cè)選擇Build > Configurations (不是Run > Configurations)。
選擇General 選項(xiàng)卡。
因?yàn)槲覀兿胍狣ebug配置的變體,在配置列表選擇Debug并點(diǎn)擊 “Copy”.。這將拷貝當(dāng)前的Debug設(shè)置到你的新配置中:
輸入配置名字,在這個(gè)選項(xiàng)中保存和Debug相同的配置,因?yàn)槲覀冎幌胩砑右粋€(gè)平臺而不是一個(gè)配置。
在平臺字段輸入名字AndroidDevice.
確保 “Create Configurations for all solution items” 選項(xiàng)沒被選中。我們只需要這個(gè)平臺的Android項(xiàng)目。如果選擇了這個(gè)選項(xiàng),我們也會將這個(gè)平臺添加到iOS項(xiàng)目中。
點(diǎn)擊“OK”。
在名為AndroidEmulator的平臺中重復(fù)步驟4-8.
因?yàn)槲覀儧]有向項(xiàng)目添加這個(gè)新平臺(步驟7),我們需要在Android項(xiàng)目中重復(fù)步驟4-8,Options > Build
> Configurations。為AndroidDevice 和ndroidEmulator 平臺都這樣做。
然后,您必須將解決方案定制平臺映射到項(xiàng)目自定義平臺:
打開Solution Options > Build > Configurations > Configuration Mappings 選項(xiàng)卡。
在最頂層的平臺字段選擇選擇AndroidDevice 平臺.
在Android應(yīng)用項(xiàng)目的配置列,選擇Debug|AndroidDevice。
在頂端的平臺字段選擇AndroidEmulator平臺。
在Android應(yīng)用項(xiàng)目的配置列,選擇Debug|AndroidEmulator.
現(xiàn)在,在主配置下拉列表,你將看到 Debug|AndroidDevice and Debug|AndroidEmulator。
.
您可以為每一個(gè)平臺編輯設(shè)置,就像之前設(shè)置的配置一樣,只要選擇要編輯平臺中的構(gòu)建設(shè)置的正確平臺就可以了。在Project Options > Android Build (Mac) 設(shè)置頁。
添加自定義平臺不直接在Visual Studio是Xamarin Studio。你可以在解決方案級別添加自定義平臺的名稱,但它添加在項(xiàng)目層面需要一些編輯的.csproj文件。 以下是如何在VisualStudio中實(shí)現(xiàn)所有這些:
添加解決方案級平臺:
通過 Build > Configuration Manager 菜單打開Configuration Manager。
點(diǎn)擊Active Solution Platform下拉列表并選擇“New”.
在名字字段輸入AndroidDevice.
在“Copy settings from”下拉列表選擇AnyCPU。
確保沒有選中 “Create new project configurations” 選項(xiàng)。在Android應(yīng)用項(xiàng)目沒有選擇一個(gè)AndroidDevice平臺時(shí),如果選中它,你將會得到一個(gè)錯(cuò)誤。
點(diǎn)擊OK。
在名字字段使用Androidmulator,重復(fù)步驟2 – 6。
現(xiàn)在最困難的部分是在Android應(yīng)用程序項(xiàng)目中添加新的平臺。
卸載Android應(yīng)用項(xiàng)目(右擊項(xiàng)目并選擇卸載)。
編輯AppName.csproj 文件(右鍵點(diǎn)擊項(xiàng)目并選擇 “編輯.csproj”)。
在打開的項(xiàng)目標(biāo)記下面粘貼下列XML:
點(diǎn)擊(此處)折疊或打開
<PropertyGroup Condition=" '$(Platform)' == 'AndroidDevice' ">
<DefineConstants>AndroidDevice</DefineConstants>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'AndroidEmulator' ">
<DefineConstants>AndroidEmulator</DefineConstants>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
尋找以下元素:
點(diǎn)擊(此處)折疊或打開
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
選擇文本的所有上述PropertyGroup包括開幕式和閉幕PropertyGroup標(biāo)簽并將它復(fù)制。
粘貼文本兩次右下方的propertygroup標(biāo)簽上面復(fù)制的結(jié)局。
編輯已粘貼的屬性組,更改:
點(diǎn)擊(此處)折疊或打開
為
點(diǎn)擊(此處)折疊或打開
上面是針對第一處拷貝的修改,下面是對第二處拷貝的修改
點(diǎn)擊(此處)折疊或打開
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AndroidEmulator' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AndroidDevice' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
不需要,但最好為每個(gè)平臺單獨(dú)outputpath,因此改變:
點(diǎn)擊(此處)折疊或打開
為
點(diǎn)擊(此處)折疊或打開
這是針對第一處拷貝的修改。
點(diǎn)擊(此處)折疊或打開
這是對第二處拷貝的修改。
<OutputPath>bin\AndroidEmulator\Debug</OutputPath>
<OutputPath>bin\AndroidDevice\Debug</OutputPath>
<OutputPath>bin\Debug</OutputPath>
然后,您必須將解決方案定制平臺映射到項(xiàng)目自定義平臺:
再次打開Configuration Manager。
為活動解決方案平臺選擇AndroidDevice.
Android應(yīng)用項(xiàng)目的平臺列,選擇AndroidDevice。
為活動解決方案平臺選擇AndroidEmulator.
在Android應(yīng)用項(xiàng)目的平臺列選擇AndroidEmulator。
現(xiàn)在你將要開放的Android項(xiàng)目屬性和編輯配置|平臺設(shè)置,只有建立相關(guān)的體系結(jié)構(gòu),比如AndroidDevice的armeabi-v7s和AndroidEmulator的x86,就像你簡易的創(chuàng)建一個(gè)新配置。
當(dāng)我們添加上面的配置時(shí),我勻?qū)⑺砑拥浇鉀Q方案級別,通過在Mac選擇“Create Configurations for all solution items”和在Windows選擇 “Create new project configurations”將他們添加到每一個(gè)項(xiàng)目中 (或者手動添加它們到.csproj 文件)。這樣,新配置在項(xiàng)目和解決方案級別上都是可用的。通過在Windows中使用Configuration Manager或者在Mac中使用Solution Options > Build > Configurations > Configuration Mappings選項(xiàng)卡將映射解決方案級別配置到項(xiàng)目級別配置中。 您將看到,對于每個(gè)項(xiàng)目,您可以選擇在配置下拉列表中選擇活動解決方案配置時(shí)將構(gòu)建哪個(gè)項(xiàng)目配置。
還可以設(shè)置每個(gè)解決方案配置生成的項(xiàng)目。如果您有一個(gè)多個(gè)應(yīng)用程序項(xiàng)目的解決方案,您可以添加一個(gè)配置,只用于構(gòu)建當(dāng)時(shí)需要的項(xiàng)目。 對于Xamarin Forms 應(yīng)用(或者對于包含多個(gè)平臺的某些解決方案),您可能需要添加只構(gòu)建IOS項(xiàng)目的配置(如果使用了PCL項(xiàng)目),一個(gè)只構(gòu)建Android項(xiàng)目(如果使用了PCL項(xiàng)目)。這將再次加快構(gòu)建時(shí)間,因此您只為正在調(diào)試的平臺構(gòu)建。
我們簡單地接觸的.csproj文件自UI沒有提供這樣的辦法在Xamarin Studio在Visual Studio應(yīng)用程序項(xiàng)目中添加自定義平臺時(shí)。主要是你會不會編輯.csproj文件但我覺得它是有用的至少接觸的項(xiàng)目.csproj文件受影響的當(dāng)你切換活動配置|平臺IDE。
當(dāng)我們添加一個(gè)自定義平臺之上,我們兩次拷貝和粘貼一個(gè)PropertyGroup添加到新平臺并且設(shè)置新平臺的構(gòu)建輸出路徑。所使用的每個(gè)配置的屬性組是一套簡單的MSBuild屬性和值時(shí)將使用相應(yīng)的配置|平臺組合選擇建立。例如,下面的屬性組時(shí)將使用的Debug|AnyCPU 時(shí)選中Configuration|Platform:
點(diǎn)擊(此處)折疊或打開
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
...
</PropertyGroup>
當(dāng)遇到條件 '$(Configuration)|$(Platform)' == 'Debug|AnyCPU',然后在那組MSBuild屬性的值將被使用。例如,您會在上面的屬性組中找到下面的內(nèi)容:
點(diǎn)擊(此處)折疊或打開
<AndroidLinkMode>None</AndroidLinkMode>
這集的鏈接器選項(xiàng)“None”當(dāng)使用Debug|AnyCpu Configuration|Platform組合。你的配置和平臺的真的只是一個(gè)讓你把一堆MSBuild屬性只是選擇為你建立一個(gè)配置|平臺特定的值。如果從命令行生成,您可以手動設(shè)置任何可用的MSBuild屬性使用/p:MSBuildProperty=value 語法。換句話說,如果您想從命令行構(gòu)建Debug|AnyCPU Configuration|Platform 同時(shí)還想使用 “Link SDK Assemblies Only”,你將按照如下方式配置(Windows):
點(diǎn)擊(此處)折疊或打開
MSBuild.exe MySolution.csproj /p:Configuration=Debug /p:Platform=AnyCPU /p:AndroidLinkMode=SdkOnly
…或者在Mac:
點(diǎn)擊(此處)折疊或打開
MSBuild MySolution.csproj /p:Configuration=Debug /p:Platform=AnyCPU /p:AndroidLinkMode=SdkOnly
你看到的任何屬性都定義在.csproj文件中的一個(gè)PropertyGroup定義,可能通過命令行構(gòu)建時(shí)使用/p:PropertyName=PropertyValue 開切換一個(gè)值。在MSBuild命令行引用 中查閱更多信息。
你已經(jīng)學(xué)會了如何創(chuàng)建自定義配置平臺以及如何編輯,編譯選項(xiàng)你想為一個(gè)特定的情況下都可以設(shè)置僅僅通過選擇適當(dāng)?shù)呐渲脇平臺組合
文章名稱:揭秘生成配置
路徑分享:http://aaarwkj.com/article36/gihppg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站排名、標(biāo)簽優(yōu)化、云服務(wù)器、搜索引擎優(yōu)化、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)