现在的位置: 首页 > 综合 > 正文

“代码生成失败。错误是““LinearBrushConverter”无法将“LinearBrush”转换为“System.CompenentModel.Design.Serialization.InstanceDescrip”。””问题的解决办法

2013年08月14日 ⁄ 综合 ⁄ 共 659字 ⁄ 字号 评论关闭

“代码生成失败。错误是““LinearBrushConverter”无法将“LinearBrush”转换为“System.CompenentModel.Design.Serialization.InstanceDescrip”。””问题的解决办法

 

 

问题描述:

自定义了一个LinearBrush类型,使用该类型定义了一个自定义控件的一个属性BackgroundBrush,但是在进行编译一次之后,再修改自定义控件的BackgroundBrush属性的内容并保存的时候,会出现“代码生成失败。错误是““LinearBrushConverter”无法将“LinearBrush”转换为“System.CompenentModel.Design.Serialization.InstanceDescrip”。””这样的提示错误,切换到窗体生成的代码中发现BackgroundBrush属性的代码并没有生成。有的时候,就算正常保存了该属性,但是编译过之后再修改其他属性再保存的时候,也这样提示错误。

 

发生原因:

出现这个问题的原因是两次编译生成的程序集的版本一样,导致VS的窗体设计器没有获取到最新的运行时对象,而出现的错误。

 

解决办法:

修改项目的配置信息,使其每次编译的时候都生成不同的版本。

在解决方案资源管理器中,选择项目,右键选择属性,在应用程序一页中点击“程序集信息”按钮,修改程序集版本为:1.0.0.*,保存即可。

 

这个是不是Visual Studio的一个bug,现在还很难说。还有没有更好的解决办法,欢迎提出。

 

 

抱歉!评论已关闭.