- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我在一台机器上启动我的应用程序时,它立即退出说它已经“停止工作”。在事件日志中,我看到 MissingMethodException 是原因。没有显示异常对话框,并且在事件日志详细信息中我看不到任何详细的错误消息(包含例如“找不到方法:xyz”)。
事件处理程序信息说(试图在这里将其翻译回英文,可能不是逐字的)
Application: Myapp.exe Framework-version v4.0.30319
Description: The process was terminated due to an unhandled exception
Exception information: System.MissingMethodException
Stack: at MyApp.MainClass.Main(System.String[])
当引发此异常时,我如何才能找到哪个方法丢失了?它是一个托管应用程序,但它具有许多 native 依赖项。
编辑:编译后的程序集全部在同一个构建中编译,即应用程序的托管代码中没有版本不匹配。二进制依赖项中可能存在不匹配,但如果是这样,我如何找出是哪一个?
它是一个在 VS 2012 中构建的 Windows 窗体应用程序,但目标是 4.0。该错误不会在所有只有框架 4.0 的机器上出现,所以这似乎不是问题。
最佳答案
MissingMethodException 告诉您缺少什么方法及其 Message 属性。然而,给它一个机会告诉你,却经常被程序员忽视。您必须为 AppDomain.UnhandledException 事件编写事件处理程序并显示或记录 e.UnhandledException 对象。
请注意,您的程序在抖动崩溃时很早就崩溃了。抖动在代码执行之前 运行。这很可能是您查看了问题的错误代码。导致崩溃的不是 Main() 方法,很可能是您在 Main 方法中创建的表单。尽管这是一个猜测,但您忘记在 Main() 方法中发布代码。为了安全起见,一个好的做法是将事件注册与带有虱子的代码分开,最好通过抑制内联来完成。修改 Program.cs 源代码,使其看起来类似于:
using System.Runtime.CompilerServices;
...
[STAThread]
static void Main() {
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
RealMain();
}
[MethodImpl(MethodImplOptions.NoInlining)]
static void RealMain() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Your code here
//...
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) {
var ex = (Exception)e.ExceptionObject;
MessageBox.Show(ex.ToString(), "Unexpected error");
Environment.Exit(System.Runtime.InteropServices.Marshal.GetHRForException(ex));
}
您很可能会取回您自己的方法之一的名称。但是,请不要低估您会看到框架方法的可能性。 .NET 4 有四个不同的版本,您无法猜测用户机器上安装的是哪一个。如果是这种情况,那么您在创建项目时犯了一个错误,您从 c:\windows\microsoft.net 子目录而不是 c:\program files\reference assemblies 添加了程序集引用。这将使您可以使用早期版本的 .NET 4 中不可用的方法。
关于.net - 诊断 MissingMethodException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16163888/
当我在一台机器上启动我的应用程序时,它立即退出说它已经“停止工作”。在事件日志中,我看到 MissingMethodException 是原因。没有显示异常对话框,并且在事件日志详细信息中我看不到任何
我正在使用 FsUnit 2.1(带有 NUnit 3.2)为 F# 项目编写测试。这是一个简单的模块: namespace Library1 module LibraryFunctions =
我正在使用 Grails in Action 中的一个示例,特别是第一次实现服务并将工作从 Controller 转移到服务。 我有一个包含用户和字符串内容的 Post 对象。 服务代码是 class
我正在通过反射创建一个程序集。当我尝试运行我的应用程序时,我得到一个 MissingMethodExeption: // public static bool berekenQueen
为什么我会得到这个异常?代码不一样但接近“演示”https://gist.github.com/1599013 异常:MissingMethodException 说明: Method not fou
当加载我的 MainPage 时,Visual Studio 进入中断模式并出现以下错误 System.MissingMethodException: Default constructor not
我已经为 Json.Net 编写了一个小型异步库包装器来自 NuGet 的 v5.06,在更新了一些 Telerik 包之后,我的 UnitTests 开始失败并显示 MissingMethodExc
当使用脚本 OnBase 从第三方应用程序调用公司库中的方法时,我收到 MissingMethodException(引用特定方法)。调用该方法的对象已经存在,并在此之前成功进行其他调用。 我已经确认
我有一些看起来像类似规范的东西: def "my spec"(Record record) { given: Something something = getSomethin
我正在尝试从我的控制台应用程序调用一个 dll 类。我试图从 dll 调用的所有类都有参数化构造函数。我希望将 user 和作为两个参数传递给我试图调用的任何类。我知道我调用这些方法的方式有问题,但无
我在 ClickOnce 部署的应用程序中依赖于 .NET 2.0 SP2(ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate
我正在通过反射创建程序集,然后使用它来创建 WCF 服务客户端的实例。 object obj = assembly.CreateInstance( serviceName, tru
我在面对 getThingsDone() is applicable for argument types: () values: [] 错误代码如下, in shared library ....
我在 c# 项目中从 Database SqlCe 生成 EF 模型时遇到问题。这是一个新错误,因为多年来我已经更新了很多次。我尝试了很多方法来解决它,也在网上研究,但没有什么能帮助我解决。我还将 N
嗨,我正在尝试使用 JQUery 调用一个 url,并附加参数。参数值来自页面对话框中的文本字段。当我调用参数中没有填充任何值的 url(即 if 中的 url)时,它执行得很好,但是当我在对话框中输
我有一个简单的域 class Cat { String name static constraints = { } } Controller 如下: class CatCont
我试图让 SQLite 在本地存储一些信息,现在我遇到了一个恼人的问题:每当我调用 sqlite 函数 CreateTable 时,它都会返回一个异常。 这是一个异常(exception): Un
我有一个 WPF 应用程序,其表单在启动时会在新线程中调用自定义方法。 Private Sub TestStep1_Loaded(ByVal sender As Object, ByVal e As
当我调用 GetExportedTypes 时,我得到了一个 MissingMethodException,代码: Assembly.LoadFrom(assemblyPath).GetExporte
我知道,通常情况下,Mono 中的 MissingMethodException 意味着您引用的框架的一部分未在 Mono 中实现,即使它在 Microsoft .NET 框架中可用。但是,在这种情况
我是一名优秀的程序员,十分优秀!