C++ WinUI 3应用程序
'无法从'ms-appx:/Sample. xaml '中找到资源。'实际上,默认情况下,xaml文件在CoreApp x64目录下的构建过程中放置在TestWRC文件夹下,但当生成xaml cpp代码时,文件引用根位置('ms-appx:/Sample. xaml'.')而不是(' ms-appx:/SampleWRC/Sample. xaml '.')。
<?xml version="1.0" encoding="utf-8"?>
<Page
x:Class="TestWRC.Sample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:TestWRC"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button x:Name="myButton" Click="myButton_Click">Click Me</Button>
</StackPanel>
</Page>
复制bug的步骤
1.创建Balnk应用程序,打包(桌面中的WinUI 3)C++,解决方案和项目名称具有相同的名称(CoreApp)。取消选中该选项以将项目放在“解决方案”文件夹中。
1.以TestWRC为名称创建Windows运行时组件(WinUI 3)C++项目,然后添加Sample.xaml文件。
1.从CoreApp导航到WRC项目。
1.构建应用程序并运行
1.单击按钮,抛出“Cannot locate resource from 'ms-appx:/Sample. xaml”。误差
我觉得这与xaml文件的配置/属性设置有关,但在项目设置上没有找到任何东西。我错过了什么小东西吗?
源代码示例-https://github.com/GMudide/Bugs/tree/main/WinUI%203/CPP
2条答案
按热度按时间ldioqlga1#
您似乎已经在Github上发布了相同的问题,并且已修复。
尝试将
AppContainerApplication property
设置为false
。如果您将
AppContainerApplication
设置为false
,则Xaml编译器将在查找.xaml/.xbf文件的路径中添加该文件夹。gzszwxb42#
在查看多个Microsoft页面后,发现它是一个已知问题。
要解决此问题,请将以下目标添加到Windows运行时组件的.vcxproj的末尾:
参考:https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel#:~:text=Known%20issues%20for%20both%20packaged%20and%20unpackaged%20WinUI%20applications%3A