错误1150 genasm.exe(1):error最终类型错误。方法'DoParse'

时间:2008-09-22 09:47:21

标签: c# .net compact-framework

o一个非常激动人心的构建问题。紧凑的框架在建造时偶尔会变得有趣。通常在搞乱xmta文件的时候,这是我第一次看到它在这种情况下出错了。

我用抽象方法创建了一个抽象基类。把它放在我的一个核心dll中。这很好。然后,我在一个“后来的”.dll中继承了它。现在我收到了这个错误:

  

错误1150 genasm.exe(1):错误   是一个错误的最终类型。方法   'DoParse'类型   'MyComanyName.PlatformName.ProductName.Configuration.ConfigurationParser'   从装配   “UICore.WindowsCE.asmmeta,   版本= 1.0.3187.17348,   Culture = neutral,PublicKeyToken = null'   没有   实现。 UICore

是的,我在这个课程中实现了这个方法。我也尝试了完全清理并重建并关闭并重新启动VS。

出于兴趣,我还有一个警告,即“对象未设置为对象的实例”,这有点不寻常。

更新:如果我将方法设为虚拟而不是抽象,则问题会消失。

更新:

  • CF 2.0 SP1
  • Visual Studio 2005 SP1
  • 该方法不是通用的
  • 但是我确实给了一个带有泛型方法的对象到这个对象的构造函数。

3 个答案:

答案 0 :(得分:2)

Visual Studio 2005/2008中的genasm存在一个问题,它必须实例化类型才能生成asmmeta文件,所以不幸的是你不能拥有公共抽象类型。

使用类似问题检查此MSDN thread(使用泛型)。还讨论了一些解决方法。

答案 1 :(得分:1)

不确定这是否相关,但如果您包含DesignTimeAttributes.xmta文件,则会遇到类似的问题。

如果您使用基本表单并继承它,那么您将获得DesignTimeAttributes。设计器中存在一个错误,意味着您根本不会看到继承的表单,因此这是作为修复程序的一部分生成的。

您可以通过从项目中排除文件来解决此问题。

答案 2 :(得分:0)

如果我将方法设为虚拟而不是抽象,则问题会消失。