什么可能导致以下异常?
System.MissingMethodException Int32 System.Environment.get_CurrentManagedThreadId()
Run Code Online (Sandbox Code Playgroud)
这个方法调用似乎是由C#编译器生成的方法生成的IEnumerable<>.
安装了.NET Framework v4.0 x86,并为v4.0任何CPU编译二进制文件.
flo*_*ele 52
CurrentManagedThreadId是.NET 4.5属性,因此您需要4.5来运行代码.有关如何发生此问题的分析,请参阅Iterator块,缺少方法和.NET 4.5.
简而言之:
如果在安装了.NET 4.5的系统上构建应用程序(针对.NET 4.0),它将使用4.5作为编译的基础,因为.NET 4.0始终被.NET 4.5覆盖.
如果您的应用程序也使用yield return,它将在仅安装4.0的系统上失败,因为此语句的实现在为4.5 Framework编译时使用新属性.
要解决此问题,请确保您的编译器系统具有4.0参考程序集.
| 归档时间: |
|
| 查看次数: |
17426 次 |
| 最近记录: |