2012-08-28 100 views
2

昨天我按照this answer建議的步驟在我的Linux Mint 13上安裝了MonoDevelop 3.0。然而,當我嘗試創建一個新的解決方案,任何提供類型的,我得到以下錯誤:System.TypeLoadException和MonoDevelop

An error has occurred. 

A type load exception has occurred. 

System.TypeLoadException: A type load exception has occurred. 
    at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&) 
    at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 

這個錯誤是什麼意思?我該如何解決呢?謝謝。

+0

這看起來像是一些內部的P/Invoke調用(即對本機代碼的託管調用)在Mono引擎本身內失敗 - 可能與Linux Mint存在一些兼容性問題。 –

+0

@JackP。,謝謝。可能的解決方案? – missingfaktor

+0

您是否遇到任何項目類型(例如,C#,F#等)或僅F#項目的此錯誤? –

回答

3

我的一臺開發機器設置爲雙啓動Windows 7和Ubuntu 12.04,由於我只在Ubuntu上安裝了Monodevelop 2.8,我以爲我會按照您引用的答案(來自askubuntu)中的步驟操作。

當我跑了sudo apt-add-repository ppa:directhex/ppa命令,我有一個大的警告消息說,PPA總是包含最新,可能不穩定來源MonoDevelop的,並使用PPA從badgerports.org,而不是建議。 Badgerports僅使用穩定的,經過測試的源代碼 - 截至撰寫本文時,它的版本號爲3.0.3.2+dfsg-1~dhx1~precise1

因此,我擊中Ctrl+C取消了apt-add-repository命令,而是遵循這些instructions to set up the Badgerports PPA。在那之後,我跑更新本地包數據庫和安裝MonoDevelop的命令:

sudo apt-get update 
sudo apt-get install monodevelop 

一旦被安裝MonoDevelop的,我能啓動它,並創建/編譯/調試沒有問題的一個新的C#示例項目。

要安裝F#加載項,我在其中一個頂層菜單('Tools',我認爲)下找到了一個'Add-ins'選項,展開了樹的'Language Bindings'節點,選中F#語言綁定並單擊「安裝」。那時,我能夠毫無問題地創建/構建/調試新的F#項目。

警告:我從Windows/VS2010複製了一個現有的F#項目,然後嘗試構建/調試它。我得到了一個類似於你的錯誤,然後Monodevelop崩潰嚴重(我不得不kill的過程)。

如果在從Badgerports安裝後無法使用Monodevelop,則應聯繫Mono和Monodevelop開發人員,讓他們調查此問題 - 該異常消息使我相信這可能是Mono中的一個錯誤,但Monodevelop中也可能存在一個觸發它的錯誤。

+0

無法在此處設置badgerports PPA。軟件經理說GPG密鑰可能被破壞或無效。 – missingfaktor