2012-07-19 52 views
0

我正在嘗試構建&運行一些專有庫以在新的WinCE 5.0設備上工作。我在不同的(6.0)設備上使用了相同的代碼,沒有任何問題。他們已經在世界各地生產,所以我確信我做錯了什麼。 :-)即使安裝了CF v3.5,MissingMethodException?

當我寫的代碼最簡單的一點:

using System; 
using System.Collections.Generic; 
using System.Text; 

namespace Contains 
{ 
    public class Program 
    { 
     static void Main(string[] args) 
     { 
      String target = "one"; 
      String expose = "let me be the one"; 

      Console.WriteLine(expose.Contains(target)); 
     } 
    } 
} 

...在運行時,我得到了一個System.String.Contains MissingMethodException。

我對此感到驚訝,因爲msdn(http://msdn.microsoft.com/en-us/library/dy85x1sa(v=vs.80).aspx)表示該方法已包括在內。 NET 2.0。我得到相同的運行時異常報告,無論上面的代碼是2.0或3.5的框架版本。

FWIW,這不是唯一似乎缺少的方法,Environment.NewLine,StringBuilder.AppendFormat也會拋出相同的運行時異常。

cgautil在設備上報告Compact Framework的[3.5.7283.0和2.0.7045.0]版本。

+0

有兩個框架安裝在一個原因嗎?如果可能的話,移除其中一個(2.0)。您很可能看到混合裝配加載過程的工件。 – ctacke 2012-07-19 20:22:54

+0

好的建議。 2.0在ROM上,因此無法卸載。當我卸載3.5,並與目標框架= 2.0構建時,我仍然得到String.Contains()丟失的錯誤。 – 2012-07-19 21:29:35

回答

0

你能告訴我你是否已經在代碼文件的頂部添加了命名空間系統。因爲我看不到任何其他原因。你只需要使用。

using System;

在代碼文件的頂部,你可以使用它。如果你有3.5或者兩者都沒關係。

使用本:

using System; 


static void Main(string[] args) 
{ 
    string target = "one"; 
    string expose = "let me be the one"; 

    Console.WriteLine(expose.Contains(target)); 
} 
+0

對不起,我認爲命名空間,使用和類聲明是隱含的。我編輯了帖子以反映你的問題。 是的,我同意,如果我有2.0或3.5,應該沒有關係。這就是問題所在。 – 2012-07-20 13:51:29

+1

如果缺失,這不會影響運行時,只會編譯時間。 – ctacke 2012-07-20 14:43:16

+0

使用字符串,而不是我的答案中描述的字符串 – sharafjaffri 2012-07-21 11:43:11

相關問題