【问题标题】:how to run .NET MAUI on windows without visual studio?如何在没有 visual studio 的情况下在 windows 上运行 .NET MAUI?
【发布时间】:2022-12-03 02:02:55
【问题描述】:

是否可以在命令提示符下在 Windows 上运行 .net Maui 项目?我试过简单的“dotnet run” 但它说:

C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\32.0.476\tools\Xamarin.Android.Tooling.targets(69,5): 错误 XA5300: 找不到 Android SDK 目录。检查 Visual Studio 中的 Android SDK 管理器是否显示一个 vali d 安装。要为命令行构建使用自定义 SDK 路径,请将“AndroidSdkDirectory”MSBuild 属性设置为 e 自定义路径。 [C:\Users\Windows\Documents\csharp-scripts\MauiTest1\MauiTest1.csproj]

我不想在 Android 上测试该应用程序,而是在 Windows 上

【问题讨论】:

  • 你在尝试构建 Windows 项目吗?或者运行一个已经构建好的项目?
  • 我正在尝试运行已经构建的项目。

标签: .net windows maui


【解决方案1】:

在我的测试中,我使用以下步骤在没有 Visual Studio 的 Windows 上使用 .NET MAUI,并且它工作正常。

步骤1。在 https://dotnet.microsoft.com/en-us/download 中安装 .NET SDK。

第2步。使用 dotnet CLI 安装 .NET MAUI 工作负载。启动命令提示符并输入以下内容:

dotnet workload install maui

第三步。使用 maui-check 命令行实用程序验证并安装缺少的组件。

dotnet tool install -g redth.net.MAUI.check
maui-check

第4步。创建一个新文件夹和一个新的 MAUI 应用程序。

第五步。启动你的安卓模拟器。

第 6 步。在 Android 模拟器中运行 MAUI 应用程序。

dotnet build -t:Run -f net6.0-android

根据 Build Windows target using dotnet build instead of msbuild.exe 的说法,使用 dotnet 方式构建适用于 Windows 的 .NET MAUI 应用程序似乎不适用于 .NET MAUI。

【讨论】:

  • 我设法使用dotnet build -f net6.0-windows(如果我没记错的话)为 Windows 构建应用程序。目前我正在尝试在 Windows 上运行构建。
  • 你好,请问你现在正面临哪一步?
【解决方案2】:

我发现编译和运行该应用程序的最佳方法是分 3 个步骤进行:

  1. msbuild编译
  2. 使用 Add-AppxPackage 安装应用程序
  3. 运行包

    我为pwsh7 编写了以下脚本:

    # Locate msbuild
    import-module appx -usewindowspowershell
    $msbuild = "$((gci -Path (gci "$env:ProgramFilesMicrosoft Visual Studio*" )[-1])[-1].FullName)MSBuildCurrentBinmsbuild.exe"
    
    # Find sln
    $sln = gci *.sln -Recurse -Depth 3 | Select -First 1
    
    # 1. Build
    & $msbuild $sln -r -p:Configuration=Debug -p:RestorePackages=false -p:TargetFramework=net6.0-windows10.0.19041 -m
    
    # 2. Find AppxManifest and Install it
    $appManifest =  gci -Path $sln.Directory AppxManifest.xml -Recurse -Depth 6 | Select -First 1
    Add-AppPackage $appManifest.FullName -Register
    
    # 3. Get app guid to launch it
    $guid = (gci *.csproj -Path $sln.Directory -Recurse -Depth 4 | gc | Select-String -Pattern 'Guid>([^<]*)<').Matches.Groups[1].Value
    $app = Get-AppxPackage -Name $guid;
    explorer "shell:appsFolder$($app.PackageFamilyName)!App"
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 2021-07-29
    • 1970-01-01
    • 2010-09-07
    相关资源
    最近更新 更多