我正在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."}
通过在debug中运行并将断点设置为runTest()
我可以看到该方法既未输入...另外如果我在创建异常之前放入一些额外的普通代码,则永远不会输入方法,异常是抛出。
但是,如果我将Test类直接放在主项目中(以便它将在exe内部构建),一切正常......
有没有人知道发生了什么?
答案 0 :(得分:1)
类库项目引用了System组件版本2.0,而安装的紧凑框架是3.5。
在部署时部署了系统组件2.0,但CF 3.5无法加载它。 修复了库项目中对系统版本3.5的引用,一切正常。