从.NET Compact Framework 2.0应用程序升级到3.5后出现问题

时间:2011-12-29 10:24:04

标签: .net windows-mobile compact-framework

我试图通过以下步骤将我的CF2.0(VS2005)应用程序提升到CF 3.5(VS2008):

  • 将设备从Windows Mobile 6.0更改为Windows Mobile 6.5.3 DTK
  • 将框架从CF 2.0更改为3.5

编译成功。当我尝试运行它时,我在启动时收到InvalidProgramException。当我尝试将Datagrid设置为DataGridTextBoxColumn的所有者时抛出异常。 < - 奇怪

我在Windows 7.0a SDK中使用了PEVerify并遇到了一些错误。通过ILDASM,我能够找到相应的类

[MD]: Error: TypeRef has a duplicate, token=0x010000c4. [Token:0x01000011] -> System.Windows.Forms.DataGrid
[MD]: Error: TypeRef has a duplicate, token=0x010000c3. [Token:0x0100006B] -> System.Windows.Forms.DataGridTextBoxColumn
[MD]: Error: TypeRef has a duplicate, token=0x010000ca. [Token:0x0100006C] -> System.Windows.Forms.DataGridColumnStyle
[MD]: Error: TypeRef has a duplicate, token=0x0100006b. [Token:0x010000C3]
[MD]: Error: TypeRef has a duplicate, token=0x01000011. [Token:0x010000C4]
[MD]: Error: TypeRef has a duplicate, token=0x0100006c. [Token:0x010000CA]

这怎么可能发生?我该如何解决?

2 个答案:

答案 0 :(得分:0)

试试这个:

  • 转到您的表单。

  • 记下此DataGrid控件的名称(即dataGrid1),然后删除DataGrid。

  • 转到工具箱。

  • 将另一个DataGrid拖放到表单上。

  • 为DataGrid提供与原始DataGrid相同的名称。

  • 再次连接您的DataGrid事件。

答案 1 :(得分:0)

问题是由使用ilmerge引起的。 我使用ilmerge将所有dll合并到exe中以减少部署问题。 因为看起来似乎不适用于cf 3.5程序集。