c#,在其他系统上运行编译的应用程序时...,ScintillaNET签名错误?

时间:2011-07-20 07:17:06

标签: c# deployment signature

当我分发我开发的软件时遇到问题,编译后的.exe在我的系统上运行正常,但在解析给其他人时,它会在32位和64位系统上显示以下错误。

我已经尝试了很多编译选项,包括混淆,为任何CPU构建,构建为64位和32位,我也尝试过,在其他系统上构建,所有.dll都在包中提供,我甚至厌倦了合并.dlls我可以不违反许可协议等。

甚至在其他系统上注册了所有.dll。

有什么想法吗? 我做了一些谷歌搜索,但作为最后的手段,我不得不问这里,知道我的运气将是明显的,错误让我相信dll不在那里,但他们是......

以下是错误:

Problem signature:

Problem Event Name: CLR20r3 
Problem Signature 01: testtool.exe
Problem Signature 02: 1.0.0.0 
Problem Signature 03: 4e1ec8bf Problem
Signature 04: ScintillaNet 
Problem Signature 05: 2.2.3581.19319
Problem Signature 06: 4adf566e 
Problem Signature 07: 66e Problem
Signature 08: 5c 
Problem Signature 09: System.IO.FileNotFoundException
OS Version: 6.1.7600.2.0.0.272.7
Locale ID: 1033 
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

...在我编译的系统上运行正常。

上面让我认为dll不在那里......但它们是。

谢天谢地, 斯科特

1 个答案:

答案 0 :(得分:6)

如果你的.NET应用程序在另一个系统上没有明显原因崩溃,并且错误报告暗示抛出异常这一事实(如System.IO.FileNotFoundException),你应该为未处理的异常添加一个处理程序(AppDomain.CurrentDomain.UnhandledException)然后只输出整个异常(e.ExceptionObject.ToString())和一个消息框。堆栈跟踪应该更深入地了解正在发生的事情(您还可以使用其他Exception属性)。使用PDB文件的调试版本将另外提供行号。

请参阅http://www.csharp-examples.net/catching-unhandled-exceptions/

在异常有可能发生之前,在应用启动时添加此事件处理程序非常重要。使用像Windbg这样的工具对于托管异常通常是过度的。