LuaInterface - 在 .Net 3.5 / .Net 4.0 下编译 FileLoadException。

我有一个项目使用 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,甚至因为某种离谱的原因改变应用程序池...

无论如何,我尝试的每个解决方案都失败了,都说明它仍在使用 2.0。

我使用了“IL DASM”,它说明其构建使用了 3.5/4.0。

有何想法寻找问题所在?我一整天都在折腾这个。难道我只是天真地以为改变一个设置就能解决我的问题吗?

任何帮助都将不胜感激。

原文链接 https://stackoverflow.com/questions/5902285

点赞
stackoverflow用户416047
stackoverflow用户416047
2011-05-06 11:49:37
stackoverflow用户1806371
stackoverflow用户1806371

当我试图将 LUA 代码与我的 .NET4.0 项目集成时,我遇到了同样的问题。因为无法从其存储库检出 LuaInterface 项目文件,所以我没有重新生成 .dll。无论如何,我重新编写了我的小型测试应用程序的 app.config,到目前为止似乎运行良好。

您需要重新编写的 XML 行为:

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

我无法告诉您这种方法有多健壮,因为我只尝试了一些简单的操作,如读写字符串、doFile 等等。

希望它对您也有用。

2012-11-07 14:07:10