我的一个项目使用LuaInterface。我已经开始将它从XNA迁移到OpenTX,并在.Net 4.0下重写它。
我开始移动我的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 Framework的属性从.Net 2.0更改为.Net 4.0(以及它的客户端模式)和.Net 3.5。
这两个设置都给出了错误,指出它仍然使用2.0构建。
我在StackOverflow和MSDN上尝试了很多解决方案,说明要设置app.config甚至更改应用程序池,这是因为某种不合理的原因......
无论如何,我尝试过的每个解决方案都失败了,说明它的STILL使用2.0。
我使用过“IL DASM”,并声明它使用3.5 / 4.0构建。
关于最新情况的任何想法?一整天都搞乱了。我只是天真地认为改变一个设置可以解决我的问题吗?
任何帮助都会非常感激。
答案 0 :(得分:4)
当我尝试将LUA代码与.NET4.0项目集成时,我遇到了同样的问题。我没有重建.dll,因为我无法从他们的存储库中签出LuaInterface项目文件。无论如何,我为我的小型测试应用程序重新编写了app.config,到目前为止它似乎正常工作。
您需要重写的xml行是:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
我无法告诉你这种方法有多强大,因为我只尝试了一些简单的东西,如读/写字符串,doFile等。
希望它也适合你。
答案 1 :(得分:0)