Разбор xaml UWP не удалось с DLL библиотеки классов - PullRequest
0 голосов
/ 09 января 2019

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

...