为什么我在使用来自另一个项目的 NuGet 包时出现 XamlParseException

本文关键字:项目 NuGet 包时出 XamlParseException 另一个 为什么 | 更新日期: 2023-09-27 18:36:34

我正在用 C# 编写一个基于 WinRT 的库(这里是源代码),其中我公开了一个名为 AppView 的自定义 XAML 控件。当我在本地编译库并从我的示例应用程序中使用它时,它似乎工作正常。但是,如果我将其上传到NuGet并像这样使用它:

public MainPage()
{
    new AppView();
    this.InitializeComponent();
}

然后,当调用构造函数时,我会得到一个XamlParseException。我遵循了在抛出调试器时中断调试器的建议,但不幸的是,它只是说"XAML 解析失败",并且InnerException为空。

自从我将部分库分解到另一个 DLL 中以来,这些问题一直在发生。到目前为止,我已经尝试过:

  • 包括其他 DLL(提交)
  • 包括Release目录中的所有内容(提交)
  • 将另一个 DLL 发布为单独的 NuGet 包

如果你有兴趣自己重现这一点,下面是 NuGet 上包的链接。


编辑:添加了 [wpf] 标记,因为该平台也与 XAML 密切相关。

为什么我在使用来自另一个项目的 NuGet 包时出现 XamlParseException

好吧,看起来我已经回答了我自己的问题!遵循此处列出的出色步骤对我有用。我所要做的就是进入项目的属性>构建并检查生成库布局。然后我更新了我的 nuspec 文件,只包含输出目录中的所有内容,如下所示:

<file src="bin'Release'**" target="lib'.NETCore50" />

在那之后,一切都很完美。