我似乎无法在我的开发服务器上启动和运行我的应用程序,我不确定为什么。
我在 VS 2008 中编译了我的代码,目标框架为 3.5。我使用 3.5 主要是因为我相当广泛地实现了 LINQ。本地编译运行没有任何问题。
问题是我的服务器只有 2.0 .Net 框架,升级到 3.5 显然是不可能的。
经过一些研究后,我的印象是只要我尝试执行编译后的代码,服务器就不需要安装 3.5。
今天我试图发布到服务器,但我无法在我的 WEB.CONFIG 中解决这个错误
配置错误
解析器错误消息:不允许子节点。
providerOption name="CompilerVersion"value="v3.5"/
编辑附加问题: 我看过一些关于可能将我的引用设置为“复制本地”的帖子,这可能允许我在 2.0 服务器上运行。想法?
最佳答案
你说得对,3.5 在 2.0 CLR 上运行,但 3.5 包含库,如果你使用了其中任何库,除非你在该服务器上安装 3.5,否则你就不走运了。
3.5 程序有很多选项无法仅在 2.0 上正确运行,因此我会考虑降级程序或升级服务器。
关于复制本地的注意事项。即使您复制了您的应用程序使用的所有 3.5 库,也不能保证它能正常工作,而且很可能不会。即便如此,.NET 许可证明确禁止随您的应用分发库。
既然您已经声明您使用 LINQ,那么让您的应用运行的唯一合法方法是安装 3.5 许可证。
或者,您可以仅使用 2.0 重写您的应用。
关于c# - 在只有 2.0 框架的服务器上执行编译后的 3.5 代码时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/167569/