所以我的项目结构如下: 我有一个由XamlToolkit使用的类库,因为我不得不调整某个处理程序,我现在有了自己的实现。 此实现作为对BaseApp类库的引用添加,该库包含资源字典和控件等的一些代码文件。
此BaseApp库构建为精简版,并使用"生成库布局"构建选项下的选项大多数问题都已解决。 现在在主WinRt应用程序中,我有一个BaseApp库的引用,我尝试将样式合并到应用程序中,如下所示:
<Application.Resources>
<ResourceDictionary Source="ms-appx:///BaseApp/CoreFile.xaml" />
</Application.Resources>
这让我有以下错误: 找到资源字典时发生错误&#34; ms-appx:///BaseApp/CoreFile.xaml"
我的第一个问题是,为什么这不起作用?源声明应该没问题。 第二个问题是,甚至可以对类库进行类库到WinRt应用程序吗?
编辑:
在WinRT项目中,您通常使用诸如&#34; /Folder/File.xaml"之类的来源。就像Kristian说你需要使用ms-appx://语法来引用另一个项目(比如我的类库)。
缺少的关键是在类库中,你需要使用ms:appx //为所有源声明将文件合并到1个资源字典中,就像我们在CoreFile中所做的那样
答案 0 :(得分:0)
可以在类库B中引用类库A,然后在WinRT项目中引用类库B.应该没问题。但是如果你想在WinRT项目中使用A中的代码,那么你的WinRT项目也需要引用A.
如果CoreFile.xaml
位于BaseApp
类库的根目录中,那么您的代码应该有效,但您需要在App.xaml
中这样写:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ms-appx:///BaseApp/CoreFile.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
我从未使用Generate library layout
选项而且从未遇到任何问题,所以我认为可能不需要这样做,以防止错误。