3

有谁知道 WinRT 是否真的支持使用带有嵌入式 XAML 资源字典的 C#(或我想是 VB)创建类库 (DLL),然后在另一个项目中添加对这些 DLL 的引用并合并到该字典中,甚至从“资源”中加载字典" 变成内存中的字符串?

似乎这应该从根本上得到支持,但我似乎无法让它工作,因为当我添加对该 DLL 的引用时,我总是得到一个错误,即缺少有效负载。现在我知道 XAML 文件实际上并没有编译到 DLL 中,而只是作为 appx 的一部分进行部署。Visual Studio 显然对此有问题,但我可以手动将文件复制到不同的位置,至少可以解决这个问题。(据我所知,这在发布之前被认为是一个已知问题,但我似乎也无法让它在发布版本中开箱即用)。此外,即使我确实设法添加了引用,我似乎仍然无法访问资源字典。我尝试了各种方式,例如将其合并到其他资源中(使用 ms-appx 语法)。我还尝试将文件中的字典加载到字符串中,以查看是否可以访问。似乎没有骰子。

哦,如果我想将这样的 DLL 提供给其他人,我将如何部署它?有推荐的方法吗?

4

1 回答 1

4

Tim 的文章是创建自定义控件的最佳指南,它也适用于资源字典。基本上,您可以选择构建 NuGet 包(这些包实际上不必公开共享 - 您可以轻松共享/添加私有 NuGet 包)或构建安装到 Visual Studio 并可供所有应用程序使用的扩展。

当然,您也可以手动共享包。假设您的应用程序引用了位于

MySolution/MyApplication/Dependencies/MyLibrary.dll

您还需要将.pri文件放在同一个文件夹中,如下所示:

MySolution/MyApplication/Dependencies/MyLibrary.pri

然后将资源放在与库项目中相同的子文件夹层次结构中名为库的子文件夹中,例如

MySolution/MyApplication/Dependencies/MyLibrary/Themes/Generic.xaml
MySolution/MyApplication/Dependencies/MyLibrary/Resources/Brushes.xaml
MySolution/MyApplication/Dependencies/MyLibrary/Resources/TextBlockStyles.xaml
MySolution/MyApplication/Dependencies/MyLibrary/Resources/ButtonStyles.xaml
...

一旦你这样做了 - Visual Studio 将在构建应用程序时自动选择这些文件并将它们放入 appx 包中。

于 2012-08-23T02:56:46.383 回答