程序集中的类型是使用旧版本的blend sdk构建的,并且在windows presentation foundation 4项目中不受支持

时间:2015-08-15 10:57:28

标签: c# wpf visual-studio blend

我在VS 2013中创建了一个WPF项目。升级到VS 2015后,设计器中显示的错误来自Blend SDK:

  

程序集中的类型是使用旧版本的blend sdk和   Windows演示基础4项目

不支持

8 个答案:

答案 0 :(得分:37)

  1. 以管理员身份运行命令提示符

  2. 将目录更改为Blend SDK:cd C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries\

  3. 注册DLL:gacutil -i System.Windows.Interactivity.dll

  4. 重新启动Visual Studio

  5. 参考:https://connect.microsoft.com/VisualStudio/feedback/details/755407/xaml-designer-will-not-display-when-using-blend-sdk-behaviors

答案 1 :(得分:9)

您可以通过手动更改.sln和.csproj文件中的版本号来解决此问题。

在.csproj和.csproj.user中 将ToolsVersion更改为您当前的Visual Studio版本。 VS 2013是版本12,VS 2015是版本14.

在.sln将VisualStudioVersion更改为当前版本,您可以在“关于”窗口中找到它。

同时将Microsoft Visual Studio Solution File, Format Version更改为您当前的版本(例如14.00,12.00)

注意:这仅适用于内置程序集。如果外部依赖项(如Prism)导致此错误,则必须使用新的Blend SDK重新编译它们。您也可以尝试更新依赖项,也许最新版本已经使用最新的Blend SDK编译。

答案 2 :(得分:6)

这里没有其他答案对我有用。最终解决它的是删除SDK文件夹中的.NET v4.0版本文件:

C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.0\Libraries\

我通过NuGet引用v4.5文件,但似乎设计器在上面的文件夹中找到了该文件。 v4.0文件未在GAC中注册。

答案 3 :(得分:2)

使用Visual Studio 2017时遇到类似的问题,但以上答案都没有为我完全解决。找到了一个Microsoft开发人员社区page,该社区的解决方法可以解决问题。 Bran Hagger的评论建议从解决方案的目录中删除.vs文件夹。此附加步骤清除了缓存并导致Visual Studio对其进行重建。

答案 4 :(得分:0)

只是Microsoft Visual Studio解决方案文件,格式版本更改为14.00对我有效。

答案 5 :(得分:0)

这也可能是因为您混用了System.Windows.Interactivity.dll的不同版本,尤其是如果您是从nuget获得SDK的,其中有多个不同的软件包提供它,例如:

https://www.nuget.org/packages/Expression.Blend.Sdk/ https://www.nuget.org/packages/System.Windows.Interactivity.WPF/

在这种情况下,您必须在项目之间同步这些库。

答案 6 :(得分:0)

流行的答案是正确的,但是由于开发人员世界总是在变化,所以我想我会指出,现在有一个(IMO)更好的解决方案。

2018年12月,Microsoft针对WPF的XAML行为发布了一个官方的开源受支持的NuGet程序包。 (UWP有一个单独的软件包。)迁移到此软件包非常容易。您需要卸载当前的NuGet软件包,删除一些引用,安装此软件包,并更改using语句(或FQN)。

https://www.nuget.org/packages/Microsoft.Xaml.Behaviors.Wpf/

https://devblogs.microsoft.com/dotnet/open-sourcing-xaml-behaviors-for-wpf/

我在这个SO答案中读到了它,因此功劳归于该OP:

How to add System.Windows.Interactivity to project?

答案 7 :(得分:0)

删除解决方案文件夹中的.vs文件可解决此问题。我更新了Visual Studio 2017并打开了使用旧版Visual Studio 2017构建的项目后,该问题就发生了。