2017-01-11 36 views
0

我正在WinCE6上開發.NET CF 3.5應用程序,該應用程序將構建一個exe文件和一些dll文件。我曾經在一個類庫項目中定義的示例類是這樣的: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()方法。編譯時一切都很好。如果我把一些額外的

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()我可以看到,既不進入方法...另外:但是在運行時以下異常被拋出試圖調用runTest()時在創建異常之前提供簡明的代碼,該方法從不輸入並引發異常。

但是如果我把測試類,並把它直接在主項目(以便它的exe文件內待建),一切工作正常...

有沒有人有什麼事情的任何想法?

+1

只是一個猜測,但我在消息中看到2.0版本,可能是您的設備上安裝了.NET CF版本2.0,而不是v 3.5? –

+0

如果我在設備上運行cgacutil.exe,它會顯示緊湊的框架3.5安裝 – salvolds

+0

@Valter:但是你是對的這是一個版本問題:3.5類庫程序引用系統程序集2.0,而exe引用了正確的系統程序集3.5。剛剛更換參考,一切正常 – salvolds

回答

1

類庫項目引用系統組件2.0版,而安裝的緊湊框架是3.5。

在部署時部署了系統組件2.0,但CF 3.5無法加載它。 修復了庫項目中系統版本3.5的引用一切正常。

相關問題