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。
出于兴趣,我还有一个警告,即“对象未设置为对象的实例”,这有点不寻常。
更新:如果我将方法设为虚拟而不是抽象,则问题会消失。
更新:
答案 0 :(得分:2)
Visual Studio 2005/2008中的genasm存在一个问题,它必须实例化类型才能生成asmmeta文件,所以不幸的是你不能拥有公共抽象类型。
使用类似问题检查此MSDN thread(使用泛型)。还讨论了一些解决方法。
答案 1 :(得分:1)
不确定这是否相关,但如果您包含DesignTimeAttributes.xmta文件,则会遇到类似的问题。
如果您使用基本表单并继承它,那么您将获得DesignTimeAttributes。设计器中存在一个错误,意味着您根本不会看到继承的表单,因此这是作为修复程序的一部分生成的。
您可以通过从项目中排除文件来解决此问题。
答案 2 :(得分:0)
如果我将方法设为虚拟而不是抽象,则问题会消失。