标签: maui

未为“CompileAppManifest”任务指定所需参数“DefaultSdkVersion”的值

我正在尝试在 PC Visual Studio 2022 上的 iPhone 上测试我的 .Net MAUI 应用程序,该应用程序与装有 xCode 并安装了所有内容的 Mac 配对。我的 iPhone 已连接到 Mac,并且我正在尝试将其部署为 iOS 远程设备。

构建失败并出现以下错误:

错误 MSB4044:未为“CompileAppManifest”任务提供所需参数“DefaultSdkVersion”的值。

错误发生在 Xamarin.Shared.targets 中:

<CompileSceneKitAssets
        SessionId="$(BuildSessionId)"
        AppBundleName="$(_AppBundleName)$(AppBundleExtension)"
        Condition="'$(IsMacEnabled)' == 'true'"
        ToolExe="$(CopySceneKitAssetsExe)"
        ToolPath="$(CopySceneKitAssetsPath)"
        SceneKitAssets="@(SceneKitAsset)"
        IntermediateOutputPath="$(DeviceSpecificIntermediateOutputPath)"
        TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)"
        ProjectDir="$(MSBuildProjectDirectory)"
        ResourcePrefix="$(_ResourcePrefix)"
        IsWatchApp="$(IsWatchApp)"
        SdkPlatform="$(_SdkPlatform)"
        SdkDevPath="$(_SdkDevPath)"
        SdkRoot="$(_SdkRoot)"
        SdkVersion="$(_SdkVersion)">
        <Output TaskParameter="BundleResources" ItemName="_BundleResourceWithLogicalName" />
Run Code Online (Sandbox Code Playgroud)

删除 bin 和 obj 文件夹没有帮助。

该应用程序在模拟器上成功运行。

缺什么?

iphone ios maui

5
推荐指数
1
解决办法
2047
查看次数

毛伊岛贝壳导航失败 - 罕见的复制品

我在使用 MAUI 应用程序时遇到问题,很少出现未处理的 NavigationFailed 异常。我有一个主视图,它导航到具有以下内容的辅助页面:

await Shell.Current.GoToAsync($"{nameof(AddCollectionPage)}", true, new Dictionary<string, object>
{
    {"Contracts", queryStringBuilder.ToString() }
});
Run Code Online (Sandbox Code Playgroud)

然后第二页中有一个按钮可以向后返回,使用以下命令:

await Shell.Current.GoToAsync("../");
Run Code Online (Sandbox Code Playgroud)

现在效果很好,1000 次中有 999 次可能没有问题……但应用程序崩溃的情况很少见。在调试时,它在 App.gics 中的 UnhandledException 点处中断,代码如下:

UnhandledException += (sender, e) =>
{
    if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
};
Run Code Online (Sandbox Code Playgroud)

例外并不是那么有用。 在此输入图像描述

调用堆栈仅包含 4 个条目 - 其中 2 个是外部代码,1 个是我在 App.gics 中发布的位置,另一个是调用 shell 导航的行。

刚才就遇到了这个问题,在代码中我调用导航从辅助页面返回主页面的“../”。这种情况确实很少见,但频率足够高,非常烦人。

当我包装调用 GoToAsync 的行(这会导致 try catch 中崩溃并记录它捕获的异常)时,我得到以下信息(错误和堆栈跟踪)。其中的底线引用了我的代码中调用 GoToAsync 的部分,其他所有内容都是 MAUI 框架的内容。

System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.
   at WinRT.ExceptionHelpers.<ThrowExceptionForHR>g__Throw|20_0(Int32 hr)
   at …
Run Code Online (Sandbox Code Playgroud)

c# maui

5
推荐指数
1
解决办法
1037
查看次数

如何禁用 WIndows .NET MAUI 上条目的边框和下划线?

我正在尝试在 MAUI 中自定义一个条目。主要目的是禁用边框和下划线。这是我当前在 MauiProgram.cs 文件中的代码:

Microsoft.Maui.Handlers.EntryHandler.Mapper.AppendToMapping(nameof(MdeEntry), (handler, view) =>
        {
#if ANDROID
            handler.PlatformView.SetBackgroundColor(Android.Graphics.Color.Transparent);
#elif WINDOWS
            //handler.PlatformView.Background = Colors.Transparent.ToPlatform();
            //handler.PlatformView.BorderThickness = new Microsoft.UI.Xaml.Thickness(0);
            //handler.PlatformView.GotFocus += (s, e) =>
            //{
            //    handler.PlatformView.Background = new Microsoft.UI.Xaml.Media.SolidColorBrush(Microsoft.UI.Colors.Transparent);
            //    handler.PlatformView.BorderThickness = new Microsoft.UI.Xaml.Thickness(0);
            //    handler.PlatformView.BorderBrush = new Microsoft.UI.Xaml.Media.SolidColorBrush(Microsoft.UI.Colors.Red);
            //};
#endif
        });
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,注释代码 - 是我解决问题的尝试,并且所有这些 Windows 代码都不起作用。但是,这个 Android 版可以按照我想要的方式工作:

#if ANDROID
            handler.PlatformView.SetBackgroundColor(Android.Graphics.Color.Transparent);
Run Code Online (Sandbox Code Playgroud)

有人知道如何禁用 Windows 上的边框和下划线吗?

c# windows maui

5
推荐指数
1
解决办法
1372
查看次数

如何将 Google Admob 集成到 .NET MAUI 应用程序中?

我在 Android 上有一个 MAUI Blazor 应用程序,我想在其上使用 Google 广告。到目前为止,我找不到办法做到这一点。

我发现一些解决方案涉及使用 MauiMTAdmob 插件,但它对我不起作用。我遇到了很多错误,之后我什至无法从项目中卸载 nuget 包。

有人设法在最新版本的 MAUI 上使用 Admob 吗?

MAUI 上有对 admob 的官方支持吗?未来还会有吗?

admob maui maui-blazor

5
推荐指数
1
解决办法
956
查看次数

获得焦点时选择条目中的所有文本

在我的 .NET MAUI 应用程序中,我想在条目聚焦时选择整个文本,以便可以更快地进行输入,而无需删除初始输入。

因此,我添加了以下代码:

XAML

<Entry Text="{Binding Min, Mode=TwoWay}" Focused="Entry_Focused" />
Run Code Online (Sandbox Code Playgroud)

代码隐藏

private void Entry_Focused(object sender, FocusEventArgs e)
{
    var entry = sender as Entry;

    entry.CursorPosition = 0;
    entry.SelectionLength = entry.Text == null ? 0 : entry.Text.Length;
}
Run Code Online (Sandbox Code Playgroud)

在我的Pixel 5 - API 33 (Android 13.0 - API 33)模拟器中,当我用鼠标单击我的 Entry 时,它的行为就像这样。

在此输入图像描述

当我继续使用Tab(用户没有)时,它的行为正确,正如您在此处看到的那样

在此输入图像描述

解决此问题的正确方法是什么,以便当用户单击条目并设置焦点时它的行为类似于第二个屏幕截图?

maui

5
推荐指数
1
解决办法
1420
查看次数

.Net Maui - 调试器已附加到 [myapp].exe 但未配置

我正在开发一个 .net maui 应用程序/前端应用程序,今天随机开始收到错误“myapp.exe 中发生未处理的 win32 异常”。添加警告警报“调试器已附加到 myapp.exe,但未配置为调试此未处理的异常。要调试此异常,请分离当前调试器。” 该应用程序一整天都运行得很好,当时所做的唯一更改是创建一个新的视图模型。我尝试将更改恢复到工作时的先前状态,但这并没有解决问题。
更新:
我已经进一步调试并添加了调试异常的新图像。
异常图像在这里

补充笔记:

  • VS2022 & 该应用程序位于 .net6/core6 中。
  • 调试器类型设置已选择托管、本机和脚本(如下所示)。
  • 我尝试过禁用 JIT 调试器。

.net debugging exception maui

5
推荐指数
1
解决办法
1328
查看次数

C# .Net 7 Maui 中的 Android API 33 存储权限被拒绝

我试图让应用程序用户选择一个文件夹来保存从相机拍摄的照片。如果我需要使用与我正在使用的不同的 NuGet 包或内置功能,我可以这样做。我使用的是我发现的第一个有文件夹选择器并且我可以开始工作的。

我阅读了数十篇文章、答案、问题、技术文档、演练、观看视频等,尝试访问并选择要保存相机图像的文件夹。不幸的是,似乎没有任何效果,因为我不断收到异常,说我没有“存储”权限,尽管我已经尝试了多种方法来获取它们。我还请求几乎所有与“存储”相关的权限,甚至是我认为不是真正权限的权限,但在我读过的其中一份文档中引用了它。

这适用于运行 Android 9 (API 28) 和 Android 12 (API 31) 的 2 台真实设备,但不适用于 Android 13 (API 33) 设备。我正在为FolderPicker使用最新的CommunityToolkit NuGet 包。

查看专门针对该应用程序的权限,“拒绝”部分中没有列出任何权限。

我知道这与我检查权限的自定义方式无关,因为我使用它来请求蓝牙和其他权限

靠近底部的“FolderPickerResult”代码行返回异常。它不会抛出它,而是将其返回到“结果”对象/变量。异常消息是“未授予存储权限”。

这是返回的整个对象:

{
    FolderPickerResult {
        Folder = ,
        Exception = Microsoft.Maui.ApplicationModel.PermissionException: Storage permission is not granted.at CommunityToolkit.Maui.Storage.FolderPickerImplementation.InternalPickAsync(String initialPath, CancellationToken cancellationToken)in / _ / src / CommunityToolkit.Maui.Core / Essentials / FolderPicker / FolderPickerImplementation.android.cs: line 18 at CommunityToolkit.Maui.Storage.FolderPickerImplementation.PickAsync(String initialPath, CancellationToken cancellationToken)in / _ / src / CommunityToolkit.Maui.Core / Essentials / FolderPicker / FolderPickerImplementation.shared.cs: …
Run Code Online (Sandbox Code Playgroud)

c# android maui

5
推荐指数
1
解决办法
2860
查看次数

.NET MAUI - 自动更新桌面应用程序

我一直在开发适用于 Windows 的 MAUI Blazor 混合桌面应用程序。我想为该应用程序配置自动/自我更新。我已按照 Visual Studio Code 说明进行发布。

官方文档链接

按照原样执行步骤,对于发布向导中的安装程序位置字段,我输入了一个公共 s3 存储桶 URL,其中将包含应用程序的未来版本。网址看起来像这样。

https://<bucket-name>.s3.us-east-1.amazonaws.com/blazor-application
Run Code Online (Sandbox Code Playgroud)

安装应用程序后,我生成了另一个具有增量版本的版本,并将输出文件夹的内容发布到 s3 存储桶。我关闭了正在运行的应用程序并再次启动它,但自动更新似乎不起作用。

我发现该应用程序需要一个配置有更新设置的.appinstaller文件,但我的理解是该文件是在发布时由 Visual Studio 自动创建的。那是对的吗?

另一篇文章建议应用程序应安装在文件夹中以接收更新,但安装后我没有看到安装在特定位置的选项。

感谢任何帮助,请指出我正确的资源。

c# desktop-application .net-core blazor maui

5
推荐指数
1
解决办法
908
查看次数

VS 更新到 17.7.3 后无法连接到 Mac

我刚刚在 Windows PC 上安装了新的 Visual Studio 2022 Update 17.7.3。从那时起,我无法再与我的 Mac 配对来部署我的 .NET MAUI 应用程序。我收到以下错误消息:

无法安装工作负载“ios”。详细信息:工作负载安装期间出错:在版本 16.4.7098 中安装清单“microsoft.net.sdk.ios”时出错:文件“microsoft.net.sdk.ios.manifest-7.0.100::16.4.7098”不是在 NuGet 源“https://api.nuget.org/v3/index.json; https://api.nuget.org/v3/index.json”中找到。

visual-studio maui

5
推荐指数
1
解决办法
847
查看次数

Maui ImageButton 与 FontImageSource - 如何调整图像大小?.net 8

我刚刚将我的 maui android/ios 项目更新为 .net 8,我的 ImageButtons 现在呈现不同的方式。

在 .net 7 中,我没有设置 ImageButton 的高度/宽度,按钮的大小将根据填充进行调整。我找到了一个我喜欢的平衡,它的图像显示有一些填充,这样它就不会被圆角半径切断。

在 .net 8 中,我需要设置高度/宽度才能显示 ImageButton。但是,设置 ImageButton 高度/宽度尺寸后,填充值没有任何区别(这与 .net 7 中的行为相同)。

由于某种原因,FontImageSource 现在渲染得比以前更大,并且填充没有任何区别,我无法让图像很好地适合按钮而不被角半径切断。FontImageSource 图标没有改变。

在此输入图像描述

我尝试了各种不同的高度/宽度、填充和角半径,以及设置 fontImageSource 的大小,但我无法复制 .net 7 中此按钮的外观!

我想让它看起来像上图中顶部中间的图标。有谁知道需要更改什么才能使图标正确显示?

<Grid Margin="0" BackgroundColor="Black" >
    <Grid.RowDefinitions>
        <RowDefinition Height="40" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <ImageButton Grid.Row="1" Margin="15,0,15,10" 
        HorizontalOptions="End" 
        VerticalOptions="End" 
        HeightRequest="40" 
        WidthRequest="40"
        Padding="5"
        CornerRadius="20"
        BackgroundColor="#32578f">
        <ImageButton.Source>
            <FontImageSource  
                Glyph="{x:Static m:MaterialOutlined.Grid_view}" 
                FontFamily="MaterialOutlined" 
                Color="White" 
                Size="10"/>
        </ImageButton.Source>
    </ImageButton>
</Gird>
Run Code Online (Sandbox Code Playgroud)

imagebutton maui maui-android .net-8.0

5
推荐指数
1
解决办法
570
查看次数