设置WinRt应用程序,引用类库,该类库引用类库

时间:2015-01-07 10:35:17

标签: xaml windows-runtime winrt-xaml

所以我的项目结构如下: 我有一个由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中所做的那样

1 个答案:

答案 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选项而且从未遇到任何问题,所以我认为可能不需要这样做,以防止错误。