2

oOo 一个非常令人兴奋的构建问题。紧凑的框架在构建时偶尔会变得有趣。通常在处理 xmta 文件时,但这是我第一次看到它在这种情况下出错。

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

错误 1150 genasm.exe(1) :错误 最终类型出错。来自程序集“UICore.WindowsCE.asmmeta,版本=1.0.3187.17348,文化=中性,PublicKeyToken=null”的“MyComanyName.PlatformName.ProductName.Configuration.ConfigurationParser”类型中的方法“DoParse”没有实现。UICore

是的,我已经在这个类中实现了这个方法。我还尝试了完全清理和重建以及关闭并重新启动 VS。

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

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

更新:

  • CF 2.0 SP1
  • 视觉工作室 2005 SP1
  • 该方法不是通用的
  • 但是,我确实为该对象的构造函数提供了一个具有通用方法的对象。
4

3 回答 3

2

这是 Visual Studio 2005/2008 中 genasm 的一个问题,它必须实例化类型才能生成 asmmeta 文件,因此很遗憾,您不能拥有公共抽象类型。

检查这个MSDN 线程有类似的问题,(使用泛型)。还讨论了一些解决方法。

于 2008-09-22T12:44:21.607 回答
1

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

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

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

于 2008-10-20T10:04:38.413 回答
0

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

于 2012-09-30T02:59:17.583 回答