2010-04-29 46 views
1

我在C#中編寫了一個Windows窗體應用程序,它適用於我的電腦。但在另一臺PC上,當我嘗試做某些事情時發生錯誤。C#程序中的MissingMethodException

MenuItem_Click事件處理程序

private void rUNToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    MessageBox.Show("I'm in rUNToolStripMenuItem_Click!"); 
    ... 

} 

ToolStripMenuItem事件處理程序

private void dataPositionToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    MessageBox.Show("I'm in dataPositionToolStripMenuItem_Click!"); 
    ...  
} 

運行我的電腦上:

MenuItem_ClickEvent處理器輸出(我的電腦)

MessageBox appears: "I'm in rUNToolStripMenuItem_Click" 

ToolStripMenuItem事件處理程序(我的電腦)

MessageBox appears: "I'm in dataPositionToolStripMenuItem_Click!" 

MenuItem_Click事件處理程序:(另一臺計算機上)

Messagebox doesn't appear and an Exception is thrown 
Method not found: "Void  
Microsoft.CSharp.RuntimeBinder.CSharpGetMemberBinder.ctor(
System.String.System.Type, System.Collections.Generic.IEnumerable'1<Microsoft 
.CSharp.RuntimeBinder.CSharpArgument Info>)'. 

這是錯誤的PRINTSCREEN:
Screen Capture http://img51.imageshack.us/img51/589/errorts.jpg

我在做什麼錯?

回答

4

另一臺計算機是否安裝了正確版本的.net運行時版本,您爲其構建了該應用程序?

+0

是的,我的電腦具有.NET Framework 4.0.20506,並且我部署的計算機具有.NET Framework 4.0.30319。該程序運行在兩臺計算機上,但在「目標」計算機上,當我嘗試做某些事情時,它不起作用。 我提到我爲我的應用程序進行了設置。 謝謝 – Aurelian 2010-04-29 20:14:18

+0

這不是和.NET運行時相同的版本。爲.NET 4 RTM構建您的應用程序,部署到使用.NET 4 RTM的計算機上,您應該沒問題。 – 2010-04-29 20:29:21

+0

非常感謝,ANC_Michael! – Aurelian 2010-04-29 21:09:26

2

在.NET中開發應用程序時,您需要確保主機環境具有應用程序所針對的.NET框架的相同版本。

如果您從解決方案資源管理器中右鍵單擊您的應用程序,請轉至屬性,然後選擇應用程序選項卡,您可以指定(或確認)您的應用程序正在使用的框架,這將是您將不得不安裝的版本。

如果你有安裝項目可以使.NET框架的先決條件(基本上使得用戶安裝他們可以安裝應用程序之前),所以你沒有這樣的問題...

+0

非常感謝詹姆斯! – Aurelian 2010-04-29 21:08:53

相關問題