У меня очень простое приложение uwp, в котором я имею в виду библиотеку классов, которая, очевидно, также является проектом uwp и имеет Custom ContentDialog. Когда я ссылаюсь на него напрямую как на проект, он работает нормально, и открывается ContentDialog. Но когда я удаляю проект и использую его созданную dll (Debug для режима отладки и Release для режима Release) и ссылаюсь на эту dll, я получаю исключение xaml Parse в конструкторе этого ContentDialog.
Код клиентского приложения UWP
public sealed partial class MainPage : Page
{
private async Task Test()
{
var exitNode = new ExitNodeCode.ExitNode();
await exitNode.AskForPermissionPopup();
}
public MainPage() => InitializeComponent();
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
await Test();
base.OnNavigatedTo(e);
}
}
исключение выдается в методе Контрольная работа(), но трассировка стека (подтвержденная точкой останова) приводит к методу InitializeComponent () в конструкторе этого настраиваемого contentDialog.
Метод в проекте библиотеки классов
public async Task AskForPermissionPopup()
{
var dialog = new PermissionDialog();
await dialog.ShowAsync();
}
xaml для диалога настраиваемого содержимого
<ContentDialog
x:Class = "ExitNodeCode.PermissionDialog"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d"
PrimaryButtonText = "I Agree!"
SecondaryButtonText = "Maybe Later"
PrimaryButtonClick = "PermissionDialog_PrimaryButtonClick"
SecondaryButtonClick = "PermissionDialog_SecondaryButtonClick">
<Grid >
</Grid>
</ContentDialog>
cs код для диалога
public sealed partial class PermissionDialog : ContentDialog
{
public PermissionDialog()
{
InitializeComponent();
}
}
на проект библиотеки классов ссылается проект «компонента среды выполнения Windows», который является фоновой задачей, и клиентское приложение ссылается на эту фоновую задачу, но я думаю, что здесь это не имеет значения, потому что это исключение синтаксического анализа xaml, а фоновая задача даже не регистрируется, когда происходит исключение
Вы хотите, чтобы диалог отображался в фоновой задаче?
Структура вашего проекта выглядит сложной, не могли бы вы поделиться простым образцом?
Столкнувшись с такой же ошибкой, вы нашли какое-нибудь решение !?
Я также пытаюсь показать диалог содержимого из библиотеки классов, которая является dll. Я получаю это исключение XamlParseException. Всем помочь!





Если вы видите это на целевых объектах ARM64, возможно, это можно решить, добавив это в свой проект:
<ProperytGroup>
<!-- ARM64 builds for managed apps use .NET Native. We can't use the Reflection Provider for that. -->
<EnableTypeInfoReflection Condition = "'$(Configuration)' == 'ARM64'">false</EnableTypeInfoReflection>
</ProperytGroup>
По сути, уровень XAML / .NET в ARM64 работает по-другому, и на этой границе есть проблема. Насколько я понимаю, разработчики Windows SDK работают над решением этой проблемы.
Имеется ли в библиотеке такая же минимальная и целевая версия Win 10, что и в основном проекте?