使用.NET 4的WPF中的Sketchables无法加载System.Core版本= 2.0.5.0

时间:2010-12-17 01:00:31

标签: wpf silverlight sketchflow

Sketchflow新手(几天),WPF新手(几周)。

工作区详细信息:

WinXP,Visual Studio 2010 Ultimate,Expression Studio Ultimate(使用带有SketchFlow的Expression Blend 4)。下载了Sketchables 0.9 release并构建了一个发布版本(已经构建了Debug版本)。

问题详情:

启动Expression Blend 4,创建一个WPF Sketchflow项目。建立它(成功)。添加 发布调试版本的Sketchables库(在桌面而不是SL文件夹中)的引用,并尝试再次构建。构建失败并出现错误:

Unknown build error, 'Could not load file or assembly 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXX' or ore of its dependencies. The local assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)'

现在,我已经看到了一些类似错误的问题,特别是一些问题是由于尝试在WPF项目中加载Silverlight控件引起的。但是,我不知道它是否相关。在预感中,我尝试了一个Silverlight项目。果然,构建一个Silverlight Sketchflow项目并添加Sketchables库构建得很干净。

所以,问题是:有没有人对Sketchables源中实际导致此错误的内容有任何想法,关于如何跟踪它的指针,以便我可以处理它并获得一个干净的库构建WPF?

2 个答案:

答案 0 :(得分:2)

查克是对的。 Sketchables.Common dll是一个Silverlight类库。简单的方法是创建一个Sketchables.Common.WPF项目并使其成为常规类库。复制SL库项目中的类,编译,然后将Sketchables.WPF中的引用更改为指向Sketchables.Common.WPF而不是Sketchables.Common。您的Blend项目现在应该构建。

更高级的方法是将两个Common项目共享到同一个文件,但我不会在这里讨论。在项目之间搜索共享(链接)文件,您将找到答案。

答案 1 :(得分:1)

您已确定问题的原因,您尝试在WPF项目中引用的程序集是为Silverlight编译的(2.0.5.0版本号是Siverlight的赠品)。

您可能需要与控件的作者核实一下,看看是否有办法为WPF编译它。