Telerik WPF编译错误:无法加载TemplateVisualStateAttribute类型求助
嘿,针对你碰到的这个「无法从程序集Telerik.Windows.Controls, Version=2017.2.614.45中加载类型Telerik.Windows.Controls.TemplateVisualStateAttribute」的编译错误,我给你整理了几个实用的解决思路,你可以挨个试试:
统一Telerik组件版本
这个错误大概率是项目里引用的Telerik组件版本不匹配搞出来的。比如你可能主控件用的是2017.2.614.45,但其他依赖的Telerik子组件(比如导航、网格控件这类)是别的版本,或者项目里还残留着旧版本的引用。
你可以右键项目 → 「管理NuGet程序包」,翻一遍所有Telerik相关的包,确保它们的版本完全一致。要是有不一样的,统一升级或者降级到2017.2.614.45这个版本就行。清理缓存后重新生成
有时候项目的bin/obj目录里会残留旧的程序集缓存,导致加载时混淆版本。你可以这么操作:- 先关掉Visual Studio
- 手动删掉项目根目录下的bin和obj文件夹
- 重新打开项目,先点「生成」→「清理解决方案」,再点「生成」→「重新生成解决方案」
检查引用的正确性
右键项目里的Telerik.Windows.Controls引用 → 「属性」,看看「版本」是不是2017.2.614.45,「复制本地」有没有设为True。要是引用路径指向的是旧版本的程序集,手动改到正确的版本文件路径。确认属性是否存在于当前版本
有些Telerik版本会调整属性的位置甚至移除它。你可以查一下2017.2.614.45版本的Telerik文档(本地离线文档就行),看看这个TemplateVisualStateAttribute是不是真的存在。如果这个版本确实没有,那要么修改代码去掉对这个属性的引用,要么升级到包含该属性的Telerik版本。检查配置文件的绑定重定向
要是项目的App.config或者Web.config里有程序集绑定重定向,可能把Telerik的版本导去了错误的地方。打开配置文件,找类似下面的节点,确保版本号和你引用的完全一致:<dependentAssembly> <assemblyIdentity name="Telerik.Windows.Controls" publicKeyToken="5803cfa389c90ce7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2017.2.614.45" newVersion="2017.2.614.45" /> </dependentAssembly>
内容的提问来源于stack exchange,提问作者Jon

