WinCE6에서 일부 DLL을 exe로 빌드 할 .NET CF 3.5 응용 프로그램을 개발 중입니다. 나는 클래스 라이브러리 프로젝트에서이 같은 예를 들어 클래스를 정의 :System.MissingMethodException
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()
에 중단 점을 설정함으로써 ... 또한 내가 몇 가지 추가를 넣어 경우 예외 생성 전에 일반 코드는 메소드가 입력되지 않고 예외가 발생합니다. 내가 테스트 수업을하고 (이 EXE 파일 내부에 내장 될 수 있도록) 모든 것이 잘 작동 주요 프로젝트에 직접 넣어 그러나 경우
...
이이 사람이 무슨 일이 일어나고 있는지 어떤 생각을 가지고 있습니까?
그냥 추측하지만 메시지에 버전 2.0이 있습니다. .NET Compact Framework 버전 2.0이 v 3.5 대신 장치에 설치되어있을 수 있습니다. –
장치에서 cgacutil.exe를 실행하면 콤팩트 프레임 워크 3.5가 설치되었음을 나타냅니다. – salvolds
@Valter :하지만 버전 문제 일 수 있습니다. 3.5 클래스 라이브러리 proejct가 exe가 올바른 시스템 어셈블리를 참조하는 동안 시스템 어셈블리 2.0을 참조했습니다. 3.5. 그냥 참조를 교체하고 모든 것이 잘 작동합니다. – salvolds