У меня есть очень простое приложение 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);
}
}
исключение выдается в методе Test () , но трассировка стека (подтвержденная точкой останова) приводит к методу 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, а фоновая задача не даже зарегистрировано, когда возникает исключение