我在VS 2013中创建了一个WPF项目。升级到VS 2015后,设计器中显示的错误来自Blend SDK:
程序集中的类型是使用旧版本的blend sdk和 Windows演示基础4项目
不支持
答案 0 :(得分:37)
以管理员身份运行命令提示符
将目录更改为Blend SDK:cd C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries\
注册DLL:gacutil -i System.Windows.Interactivity.dll
重新启动Visual Studio
答案 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:
答案 7 :(得分:0)
删除解决方案文件夹中的.vs文件可解决此问题。我更新了Visual Studio 2017并打开了使用旧版Visual Studio 2017构建的项目后,该问题就发生了。