c# - System.MissingMethodException Int32 System.Environment。 get_CurrentManagedThreadId() 方法

标签 c# .net-4.0

什么会导致以下异常?

System.MissingMethodException Int32 System.Environment.get_CurrentManagedThreadId()

此方法调用似乎是由 C# 编译器生成的,用于产生 IEnumerable<> 的方法.

安装了 .NET Framework v4.0 x86 并为 v4.0 Any CPU 编译了二进制文件。

最佳答案

CurrentManagedThreadId 是 .NET 4.5 属性,因此您需要 4.5 才能运行代码。 参见 Iterator blocks, missing methods, and .NET 4.5分析这个问题是如何发生的。

简而言之:

如果您在安装了 .NET 4.5 的系统上构建您的应用程序(针对 .NET 4.0),它将使用 4.5 作为编译的基础,因为 .NET 4.0 Framework 总是被 .NET 4.5 覆盖。

如果您的应用程序随后还使用 yield return,它将在仅安装 4.0 的系统上失败,因为此语句的实现在为 4.5 Framework 编译时使用了一个新属性。

要解决它,请确保您的编译器系统具有 4.0 引用程序集。

关于c# - System.MissingMethodException Int32 System.Environment。 get_CurrentManagedThreadId() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15569664/

相关文章:

c# - 使用 SUM 和 ORDER BY 的 Linq 查询

c# - .Net Core、Portable、Standard、Compact、UWP 和 PCL 之间的区别?

c# - 如何使用Lync SDK通过邮件判断是否存在合法的Lync用户?

winforms - WinForms ReportViewer 在 .NET 4.0 中是否有额外的部署依赖项?

dns - .NET 4.0 上的 System.Net.Dns.GetHostEntry(dnsServer) 问题

c# - Release模式下的调试符号

c# - 如何将 ThreadId 和 ProcessId 添加到每个条目的日志输出中

c# - ASP :dropdownlist is null on page_load

.net - 为 .Net Framework 4.0 构建的 WIX 自定义操作不起作用?有什么办法解决?

c# - 获得行动目标