Windows 8 生成期间未复制引用库的XAML文件

Windows 8 生成期间未复制引用库的XAML文件,windows-8,windows-store-apps,winrt-xaml,Windows 8,Windows Store Apps,Winrt Xaml,Windows应用商店应用不再将xaml文件编译到程序集中,而是将其复制到调试/发布文件夹(生成操作:第页)。要能够引用xaml文件,例如在ResourceDictionary中,必须使用ms appx语法: <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="ms-appx:///{assemblyname}/{folder}/{xamlfile}.xaml" /> </Res

Windows应用商店应用不再将xaml文件编译到程序集中,而是将其复制到调试/发布文件夹(生成操作:第页)。要能够引用xaml文件,例如在ResourceDictionary中,必须使用ms appx语法:

<ResourceDictionary.MergedDictionaries>
  <ResourceDictionary Source="ms-appx:///{assemblyname}/{folder}/{xamlfile}.xaml" />
</ResourceDictionary.MergedDictionaries>
我以前在一些项目中使用过它,没有问题,但是在我的上一个项目中,我无法让它工作。出于某种奇怪的原因,引用程序集中的xaml文件没有复制到调试/发布文件夹。由于没有复制文件,很明显我在合并资源字典时出错了

添加Callisto nuget包(还包含一个Themes.xaml文件)后,三个个人程序集文件夹中有两个被复制过来。删除调试文件夹并重新生成使我回到步骤1:没有复制任何文件(即使是来自Callisto的文件)


因为它只是对本地可用程序集的引用,所以我不知道哪里出了问题。

这可能是一个很长的过程,但是如果您在对该项目的引用上“处理本地”会发生什么情况?

WinRT中的项目引用出现错误。基本上,如果通过DLL添加引用,则此项目的输出文件夹层次结构是错误的。 如果将整个项目添加到解决方案中,则不会出现此错误

我认为它已经在上周发布的Visual Studio 2012更新2中修复

你的VisualStudio是最新的吗


如果是,并且您想使用的是callisto,请不要使用nuget软件包,下载完整的项目源代码,然后将此项目添加到您的解决方案中。这应该行得通。

似乎出了问题,因为此项目和某些引用项目之间的nuget包版本不同


另一个提示:如果您将所有内容卸载到其他程序集中,因此在您的Windows应用商店客户端应用程序中没有xaml文件(甚至没有在项目创建时添加的常见样式),我会看到类似的问题出现。添加一个空的虚拟页面就足够让事情重新开始了。

比较xaml文件的“构建操作”和“自定义工具”高级属性很好——在一个有效的项目中,和在一个无效的项目中。对于所有引用的程序集(在有效和失败的项目中),Copy Local都是正确的。它可以正常工作,但是您必须自己提供一个名为程序集的文件夹,并将XAML文件放在其中。我知道是这样,但您不必自己创建文件夹。因为您引用了一个项目,所以VisualStudio应该正确地创建输出文件夹树。正如我所说的,我认为它已在VisualStudio的更新2中修复
/referencefolder/some.assembly.dll
/referencefolder/some.assembly/subfolder/xamlfile