当前位置:  开发笔记 > 后端 > 正文

System.MissingMethodException - 3.5 SP1版本控制地狱

如何解决《System.MissingMethodException-3.5SP1版本控制地狱》经验,为你挑选了2个好方法。

在将ASP.net webservice部署到我的生产服务器之后,我遇到了以下异常:

system.missingMethodException而

找不到方法:'Boolean System.Threading.WaitHandle.WaitOne(Int32)'

MSDN 文档说明:

版本信息.NET Framework受以下版本支持:3.5 SP1,3.0 SP2,2.0 SP2

所以这个错误的原因是我的服务器没有更新到最新的Service Pack.

问题是:

为什么代码开始?IMO如果目标框架版本不同,应用程序根本不应该启动.

如何确保我的代码可以在JIT之前在目标机器框架版本上运行?

这太疯狂了.我认为微软应该更认真地对待版本问题.



1> Nissim..:

虽然方法:

Boolean System.Threading.WaitHandle.WaitOne(Int32)

方法不存在:

Boolean System.Threading.WaitHandle.WaitOne(Int32, bool)

确实存在.

用反射器看 - 用布尔值作为WaitOne(Int32)调用.所以简单地使用第二个签名,提供布尔值,你应该没问题.WaitOne(Int32,bool)falsefalse


我遇到了与上面相同的问题,这个解决方案对我有用.谢谢!+1
@Nissim - >尼斯为我节省了很多时间.

2> Kent Boogaar..:

我同意.问题是程序集版本号没有改变.

转换到.NET 3.5 SP1时,我通过确保构建服务器没有安装SP(即构建服务器框架版本与目标机器框架版本匹配),确保开发人员不使用特定于SP1的API.然后,一旦我们准备好,SP1就会安装在构建服务器上.类似的方法可以让你免于痛苦.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有