2011-05-05 112 views
2

我的一個項目使用LuaInterface。我已經開始將它從XNA遷移到OpenTX,並在.Net 4.0下重寫它。LuaInterface - 在.Net 3.5/.Net 4.0下編譯FileLoadException

我開始了我的移動Lua的課,發現我得到一個異常調試(FileLoadException)時

Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information. 

當我重建LuaInterface,我改變了.Net框架在其屬性從.net 2.0〜 .Net 4.0(以及它的客戶端模式)和.Net 3.5。

這兩個設置都給了我錯誤,說明它仍然使用2.0構建。

我試圖在這裏StackOverflow的許多解決方案,以及MSDN,說明設置一個app.config甚至改變了應用程序池由於某種原因敬虔...

無論如何,每一個解決方案,我已經嘗試失敗,指出它仍然使用2.0。

我已經使用'IL DASM',它聲明它使用3.5/4.0構建。

關於發生了什麼事情的任何想法?一整天都在搞這個。我是否天真地認爲改變一個設置可以解決我的問題?

任何幫助將非常感激。

+0

如果有人正在尋找一種方法來複制問題,只需寫一個類來實例化LuaInterface中的Lua類。發生這種情況時會拋出異常。 – rvIceBreaker 2011-05-05 22:05:36

+0

http://stackoverflow.com/questions/3844057/loading-luainterface-in-net4 – sylvanaar 2011-05-06 12:41:16

+0

我看了之前的Lua511來源。它奇怪的行爲,有時我已經能夠成功地建立它沒有任何變化,有時有幾個'無法將轉換爲'例外。我不明白這會如何影響LuaInterface庫的原始錯誤。我會玩它,看看會發生什麼... – rvIceBreaker 2011-05-08 05:17:59

回答

0
+0

我試過第二種解決方案。第一個我甚至不確定是否相關,看我如何製作一個win32應用程序/庫。 – rvIceBreaker 2011-05-08 05:14:02

4

當我嘗試將LUA代碼與.NET4.0項目集成時,我遇到了同樣的問題。我沒有重建.dll文件,因爲我無法從其存儲庫中檢出LuaInterface項目文件。無論如何,我重寫了app.config爲我的小測試應用程序,它似乎工作,迄今。

你需要重寫XML線路有:

<startup useLegacyV2RuntimeActivationPolicy="true"> 
<supportedRuntime version="v4.0"/> 
</startup> 

我不能告訴你這個方法是如何強大的是,因爲我只試過像讀/寫串,dofile處理等

一些簡單的東西

希望它也適用於你。