.NET MAUI 環境配置技巧

關于 .NET MAUI 國內?伙伴在配置 .NET MAUI 的時候,遇到不少問題。希望通過本教程,給到大家?些指引。

01

基礎組件部分

.NET SDK 安裝

建議安裝最新的 .NET SDK

下載地址 https://dotnet.microsoft.com/download/dotnet/6.0

安裝 .NET MAUI

安裝 .NET MAUI 成功后,通過 workload 添加 .NET MAUI 的庫。.NET workload 可以在 .NET SDK 的基礎上安裝,安裝不同應?場景的?持,如 .NET MAUI , 如 Blazor 等。你可以通過命令?的?式,使?workload。

dotnet workload install maui

注意

1. Linux 或者 macOS 需要管理員權限,所以需要 sudo

2. 有?伙伴喜歡? Visual Studio 2022 一站式安裝完成,該指引更偏向?步步調整

3. .NET 7 還在 RC 階段,等發布會同步更新

.NET MAUI ?概每 2-3 周有?個版本的更新,所以建議各位?伙伴執行:

dotnet workload update maui

各位可以通過執?以下命令去檢查 .NET MAUI 的版本

dotnet workload list

6c04d766731a166ea634e84cb431fcbc.png

02

Android 環境設定

有部分地區下載 Android SDK 和模擬器是有問題的,我這?說說?些解決辦法

JDK 安裝

安卓的環境依賴于 JDK ,微軟已經把原來的 Adoption OpenJDK 升級到 Microsoft OpenJDK 11 了。

你可以通過 https://learn.microsoft.com/java/openjdk/download 針對 Windows / macOS / Linux 開發平臺安裝最新的 Microsoft OpenJDK 版本 , 并配置好 Java_HOME 和 PATH。

在 macOS / Linux 下 , JAVA_HOME , 和 PATH 的配置如下:

export JAVA_HOME="{你的 Java 安裝路徑}/Contents/Home"
export PATH="$JAVA_HOME/bin:$PATH"

在 Windows 下 的 Path 配置

38a6dce6000914e2a4faf3c92f2f433b.png

Android SDK 安裝

在 Visual Studio 2022 安裝環境裝會把 Android Command line tools 和 Android SDK 的最新版本安裝好,這是最理想的情況,但如果各位?伙伴遇到?絡安裝問題,可以參考下?步驟?步步安裝。

Android SDK 離線版本下載地址

鏈接: https://pan.baidu.com/s/1lXRIwLpBaf0UgmvyRJg7BQ?pwd=m1qw

  • 配置 Android SDK

在你的開發環境下,創建 SDK 的存放?錄(示例創建?錄為 Android/sdk),在該?錄下創建以下?件夾

注意

這?提供 offline 的 Android SDK 包括 31, 32 ,33 分別對應 Android 12 , Android 12.1 , Android 13 , 建議?伙伴都下載安裝好。

ae3cefdf5e95b47bc0b3fcf0264392bb.png

  • ?件夾介紹

在你的開發環境下,創建 SDK 的存放?錄(示例創建?錄為 Android/sdk),在該?錄下創建以下?件夾南方);太陽黃經達150°于每年公歷8月22-24日交節。.

a

? ?/ build-tools - 編譯?具

可以設定不同版本的編譯?具

在該?錄下,創建以下??錄

build-tools_r31_(對應系統).zip 解壓后 重命名為 /31.0.0

build-tools_r32_(對應系統).zip 解壓后 重命名為 /32.1.0.rc1

build-tools_r33_(對應系統).zip 解壓后 重命名為 /33.0.0

7d3e1e6563317c5d83c92475ffe88293.png

b

? ?/ cmdline-tools - 命令??具

命令??件

基于不同平臺解壓,重命名為 7.0 ,把所有?件直接放在 cmdline-tools ?件夾內

f540c10e3a5f4cb4aee466a08091985c.png

c

? ?/ emulator - 模擬器可執??件

直接基于你的平臺解壓放置該?件夾內即可

fdbb9ce8b8d44497770c2917e4451cc7.png

這??定要記得?點,需要把 package.xml 授權?件放進去,否則你沒有辦法從 Visual Studio 中開啟模擬器。

d

? ?/ platform-tools - 平臺相關的命令??具

直接根據平臺解壓完成即可

463d21ea5e1e9a31eabe0f55816e5e93.png

e

? ?/ platforms - android sdk

直接解壓?件

platform-31_r01.zip 解壓后重命名為 android-31

platform-32_r01.zip 解壓后重命名為 android-32

platform-33_r02.zip 解壓后重命名為 android-33

f

? ?/ system-images - 模擬器鏡像

這個解決的是可以幫你構建離線鏡像,這?我提供了 Google API 的 x86_64 和 arm64 位的鏡像

如 Android 13 的模擬器對應的就是我的 33 ?件夾

在該?錄下,創建 android-33 , 繼續創建該?件夾的??件夾 google_apis, 并根據平臺的架構 x86_64 或者 arm64_v8a 創建對應的??件夾 ,如我是 apple silion ,就是 arm64_v8a

3e37fc88d3dc666a549bb8d85a2c609b.png

g

? ?/?patcher

創建??件夾 v4 ,解壓 zip 包把?件放置在v4 ?件夾內,并把 package.xml 同時放置在 v4 ?件夾

7ed3a20b7976e0e7235fb3a141d1be8c.png

也可以安裝 WSA 作為安卓的模擬環境:

https://learn.microsoft.com/en-us/windows/android/wsa/

模擬器運?,如果你是 X86_64 架構,請開啟 Intel HAXM

https://github.com/intel/haxm

03

iOS 環境設定

最新的 Xcode 是需要安裝的(因為 Xcode 14 剛發布, .NET MAUI 還沒有完整?持,請使? Xcode 13.4.1)

  • 下載 Xcode 13.4.1

鏈接: https://pan.baidu.com/s/1libEvYE752lVJKV5Q-j_NQ?pwd=sf2p

macOS 是?持多 Xcode 的開發環境的,如圖

a42887b77f9ba8f744abd4f3a481d217.png

安裝完 Xcode 后記得配置好 Visual Studio 的路徑

也可以通過命令?設定默認的 Xcode,這?建議選擇默認為 Xcode 13.4.1

sudo xcode-select -s <path/to/>Xcode.app(Xcode 13.4.1)
  • 把環境變量設置好

macOS / Linux 下

export ANDROID_HOME="/Users/luk/Tools/Android/sdk"
export PATH="$PATH:$ANDROID_HOME/platform-tools"
export PATH="$PATH:$ANDROID_HOME/emulator"
export PATH="$PATH:$ANDROID_HOME/cmdline-tools/7.0/bin"
  • Windows 下的配置

17033a07f752aa0f4948261339a7bb9a.png

8aaedbcb131554132428487022c14742.png

  • 關于 Windows Remote

現在 Windows 是要遠程連接 macOS 的設備,才能啟?模擬器和真機的,所以?家必須有?臺 Mac 系列的

相關設備,這?我建議?家? macOS 云端的解決?案,節約?下成本

https://www.macincloud.com/

還有必須 Windows 和 macOS 上的版本統?否則會有版本不同步出錯的情況。

04

在 VS 設定好相關的路徑

在 Visual Studio 2022 設定好 iOS 和 Android 的配置路徑這是最后?步

macOS 路徑設定

Xcode 的路徑配置 Perferences -> SDK -> Apple?

d18676963dc97ea14fc4377eceee4df2.png

Android?路徑設定

Android 的路徑配置 Perferences -> SDK -> Android -> Locations

9bf395609afd028b35ccd63c5caae638.png

Windows 路徑設定

c0324d9a198f2318a42722b60cd7aa68.png

05

小結

.NET MAUI 的配置問題不是出于 .NET 本身更多是出現在 Android 和 iOS 的環境配置上,特別 Android SDK會根據地區和?絡供應商的設定?變。希望該內容能幫到各位在 .NET MAUI 環境安裝遇到困難的?伙伴。

CA周記往期回顧:

0f395ff43dfa1971830e4e8f00d260c9.jpeg

更多原創文章與資源共享

請關注Kinfey Techtalk

點擊下方【閱讀原文】在Github 查看完整操作指引。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282492.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282492.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282492.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux中一些常用的很巧妙的命令

當你想要使用上一個命令的最后一個參數&#xff0c;&#xff08;上一個命令的最后一個參數很長&#xff09;&#xff0c;可以使用 esc .      (是esc 點&#xff09; !$ 引用上一個命令的最后一個參數 對命令行的編輯快捷方式&#xff1a; Ctr…

android 8種對話框(Dialog)使用方法匯總

本文為作者原創&#xff0c;轉載請注明出處&#xff1a;http://www.cnblogs.com/gzdaijie/p/5222191.html 目錄 1.寫在前面2.代碼示例2.1 普通Dialog&#xff08;圖1與圖2&#xff09;2.2 列表Dialog&#xff08;圖3&#xff09;2.3 單選Dialog&#xff08;圖4&#xff09;2.4 …

使用layui的layer組件做彈出層

官方文檔地址: http://www.layui.com/doc/modules/layer.html 本例演示效果: 當點擊申請提現時,出現申請提現框,并根據用戶輸入進行一些判斷,給出友好提示,比如: 代碼實現: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&q…

C#之表達式樹使用

目的遇到一個場景需要接收一個表的列來進行動態排序&#xff0c;比如我想根據CreateTime進行正序排序&#xff0c;加上我使用的ORM框架是EFCore&#xff0c;那么我一下子就想到應該使用OrderBy&#xff0c;然后接收一個要排序的列query.OrderBy("CreateTime")但是這樣…

實現一個基于相等性比較的 GroupBy

實現一個基于相等性比較的 GroupByIntro在我們的系統里有些數據可能會有問題&#xff0c;數據源頭不在我們這里&#xff0c;數據不好修復&#xff0c;在做 GroupBy 的時候就會很痛苦&#xff0c;默認的 group by 會依賴于 HashCode &#xff0c;而某些場景下 HashCode 可能并不…

win7系統下載 ghost win7 Sp1 64位純凈3月版

win7系統下載 ghost win7 Sp1 64位純凈3月版 軟件名稱: Ghost Win7 Sp1 64位純凈3月版軟件語言: 簡體中文軟件大小: 5.25大小: GB發布日期: 2017-03-21文件名稱: ZJY_Ghost_win 7_X64_CJ201703.GHOM D 5: EB16DCD608A5CCFE34B58…

CrossPHP框架的常用操作

1. 在視圖控制器中使用$this->res()方法來生成資源文件的絕對路徑$this->res(css/style.css);生成的連接為http://youdomain.com/static/css/style.css2. 生成指定app名稱的連接$this->appUrl()第一個參數為基礎url, 第二個參數為app名稱, 第三個參數為 控制器:方法 第…

WPF-07 Style之觸發器

觸發器能夠在改變屬性值的時候&#xff0c;根據值變化執行操作&#xff0c;在不需要創建一個新的控件的情況下&#xff0c;可以動態的改變控件的外觀&#xff0c;當條件滿足時&#xff0c;觸發器可以改變任何屬性的值&#xff0c;觸發器通常定義在Style中&#xff0c;在窗體的根…

jdk自帶常用命令行工具使用

轉自&#xff1a;http://blog.csdn.net/winwill2012/article/details/46364923jps命令使用jps命令類似于Linux下的ps命令&#xff0c;用于列出當前正在運行的所有Java進程。基本用法直接運行不加任何參數就能列出所有java進程的pid和類的短名稱。例如&#xff1a;常用參數-q參數…

crossphp框架中,在模板中加載其他模板

這里說我自己做的項目的應用場景 要求是用layui框架的layer組件,實現彈出層效果,用原聲PHP無疑很容易做到,但是如果應用到crossphp框架流程就會非常麻煩 這里簡單講一下大致的步驟: 1. 在一個模板文件中應用layui的layer組件實現彈出框 index.tpl.php2. 從我們自己定義的路徑上…

for(auto c:s)與for(auto c:s)

在c11標準下可以執行的特殊格式的for循環語句&#xff0c;區別在于引用類型可以改變原來的值 #include<iostream> using namespace std; int main() {string s("hello world");for(auto c:s)ct;cout<<s<<endl;//結果為hello worldfor(auto &c:…

MASA Framework的MinimalAPIs應用

在以前的MVC引用程序中&#xff0c;控制器是一個功能齊全的框架&#xff0c;但它偏重&#xff0c;因此在.Net6.0官方引入了MinimalAPIs&#xff0c;即最小API&#xff0c;與MVC相比&#xff0c;它足夠的簡潔&#xff0c;適合小型服務來使用&#xff0c;下面就讓我們看看如何使用…

【轉】Java開發必須要知道的知識體系

Java Java是一門超高人氣編程語言&#xff0c;擁有跨平臺、面向對象、泛型編程等特性。在TIOBE編程語言排行榜中&#xff0c;連續奪得第一寶座&#xff0c;而且國內各大知名互聯網公司&#xff0c;后端開發首選語言&#xff1a;非Java莫屬。今天只是梳理下Java知識體系&#xf…

CrossPHP--在我們用ajax,js取不到指定數據時,我們可以換一種方式

項目中遇到的問題: 需求: 用的是layui的laypage組件,進行分頁操作,熟悉layui的朋友都知道,laypage需要從服務端給其一個總條數, 但是在進行ajax請求時出了問題, 我是這樣定義的但是調用的時候卻無法將數值直接返回回去,所以這里只能更換一種思路 在控制器中進行數據的查詢,然后…

VS 代碼行數統計

按CTRLSHIFTF (Find in files)&#xff0c;勾上支持正則表達式&#xff0c;然后輸入搜索內容&#xff1a; ^:b*[^:b#/].*$#開頭和/開頭或者空行都不計入代碼量。如果需要只統計代碼文件的代轉載于:https://www.cnblogs.com/sunlyk/p/7484728.html

MySQL設置從庫只讀模式

常見現象 運維工作中會經常維護MySQL主從服務器&#xff0c;當然Slave我們只是用于讀操作。 一般權限開通也只授權只讀賬號&#xff0c;但是有時候維護工作可能不是一個人在做&#xff0c;你不能保證其他同事都按照這個標準操作。 有同事可能會授權Slave庫MySQL賬號為all或者se…

尋找kernel32.dll的地址

為了尋找kernel32.dll的地址&#xff0c;可以直接輸出&#xff0c;也可以通過TEB,PEB等查找。 尋找TEB: dt _TEB nt!_TEB 0x000 NtTib : _NT_TIB 0x01c EnvironmentPointer : Ptr32 Void 0x020 ClientId : _CLIENT_ID 0x028 ActiveRpcHandle : Ptr32 Void 0x02c ThreadLocalSto…

layui彈出層使用(layer.alert / layer.open / layer.prompt )

一 layer.alert 效果圖: 代碼: //取消提現 function back(id) {layer.alert(真的要取消嗎, {skin: layui-layer-molv //樣式類名 自定義樣式,closeBtn: 1 // 是否顯示關閉按鈕,anim: 1 //動畫類型,btn: [確定,取消] //按鈕,icon: 6 // icon,yes:function(){return $.aj…

SkiaSharp 自繪彈幕效果

SkiaSharp 自繪彈幕效果控件名&#xff1a;SkiaSharpBarrage作者&#xff1a; 驚鏵原文鏈接&#xff1a; https://github.com/yanjinhuagood/SkiaSharpBarrage框架使用.NET60&#xff1b;Visual Studio 2022;項目使用 MIT 開源許可協議&#xff1b;接著上一篇 WPF 彈幕上期有…

JavaScript中this指向

一.重點來了&#xff0c;this指向問題&#xff1a;1.this指向之普通函數。 2.this指向之對象 3.this指向之構造函數 4.this指向之&#xff08;call,apply&#xff09;動態更改this指向。 二.具體分析如下 1.普通函數 // 第23行的調用者為null,this指向也為null,// 所以這時js把…