【发布时间】:2017-01-11 13:54:38
【问题描述】:
我正在 WinCE6 上开发一个 .NET CF 3.5 应用程序,它将构建一个 exe 和一些 dll。我在类库项目中定义了一个这样的示例类:
using System.ComponentModel;
using System;
namespace Utils
{
public static class Test
{
public static void runTest()
{
Exception e = new Win32Exception(0, "CreateToolhelp32Snapshot error.");
}
}
}
我将在我的主要可执行项目中调用runTest() 方法。在编译时一切都很好。但是在运行时尝试调用runTest()时会抛出以下异常:
System.MissingMethodException
{"The version of the assembly System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089 cannot be loaded by this version of the Microsoft .NET Compact Framework."}
通过在调试中运行并在runTest() 中设置断点,我可以看到没有输入该方法...此外,如果我在创建异常之前添加了一些额外的纯代码,则永远不会输入该方法并抛出异常。
但是,如果我采用 Test 类并将其直接放在主项目中(以便将其构建在 exe 中),一切正常...
有人知道发生了什么吗?
【问题讨论】:
-
只是猜测,但我在消息中看到 2.0 版,可能是您的设备上安装了 .NET CF 2.0 版而不是 v 3.5?
-
如果我在设备上运行 cgacutil.exe,它显示已安装紧凑框架 3.5
-
@Valter:但你是对的,这是一个版本问题:3.5 类库 proejct 引用了系统程序集 2.0,而 exe 引用了正确的系统程序集 3.5。刚刚替换了参考,一切正常
标签: c# .net compact-framework windows-ce