错误1150 genasm.exe(1):错误终结类型错误。方法" DoParse"
时间:2020-03-06 14:31:56 来源:igfitidea点击:
o一个非常令人兴奋的构建问题。紧凑的框架在构建时偶尔会变得有趣。通常在处理xmta文件时,但这是我第一次看到它在这种情况下出现问题。
我用抽象方法创建了一个抽象基类。将此放置在我的核心dll之一中。很好然后,我从"继承"的.dll中继承了该文件。现在我得到这个错误:
Error 1150 genasm.exe(1) : error There was an error finalizing type . Method 'DoParse' in type 'MyComanyName.PlatformName.ProductName.Configuration.ConfigurationParser' from assembly 'UICore.WindowsCE.asmmeta, Version=1.0.3187.17348, Culture=neutral, PublicKeyToken=null' does not have an implementation. UICore
是的,我已经在此类中实现了此方法。我还尝试了完全清理和重建以及关闭并重新启动VS。
出于兴趣,我还警告说"对象未设置为对象实例",这有点不寻常。
更新:如果我将方法设为虚拟方法而不是抽象方法,问题就会消失。
更新:
- CF 2.0 SP1
- Visual Studio 2005 SP1
- 该方法不是通用的
- 但是,我确实将具有通用方法的对象赋予该对象的构造函数。
解决方案
在Visual Studio 2005/2008中,genasm的问题在于,它必须实例化类型以生成asmmeta文件,因此,很遗憾,我们不能具有公共抽象类型。
检查具有类似问题(带有泛型)的该MSDN线程。也讨论了一些变通办法。
不知道这是否相关,但是如果包含DesignTimeAttributes.xmta文件,也会遇到类似的问题。
如果我们使用基本表单并为其继承,则将获得该DesignTimeAttributes。设计器中存在一个错误,这意味着我们根本看不到继承的表单,因此将其作为修复程序的一部分生成。
我们可以通过从项目中排除文件来解决这一问题。