【问题标题】:Problems after upgrade from a .NET Compact Framework 2.0 Application to 3.5从 .NET Compact Framework 2.0 应用程序升级到 3.5 后的问题
【发布时间】:2011-12-29 10:24:04
【问题描述】:

我尝试通过以下步骤将我的 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]

这怎么会发生,我该如何解决?

【问题讨论】:

    标签: .net windows-mobile compact-framework


    【解决方案1】:

    试试这个:

    • 转到您的表单。

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

    • 转到工具箱。

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

    • 为 DataGrid 指定与原始 DataGrid 相同的名称。

    • 再次连接您的 DataGrid 事件。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 在原始问题中提及真正关键的细节会有所帮助。
      猜你喜欢
      • 2011-02-17
      • 2011-09-19
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多