4

我已经复制了 Windows 7 VM 和 Windows Vista 笔记本电脑上 Debug 文件夹的内容。两者都安装了 Dot Net 4.5。所有程序集都设置为复制本地和AFAIK,我没有引用应用程序文件夹中的任何内容。当我在两台不同的开发人员计算机(一台 Win8,一台 Win7)上运行该应用程序时,它运行良好,就像在 Visual Studio (F5) 中运行它一样。

在部署计算机上并非如此。问题是我没有收到错误消息。在我双击非开发机器上的可执行文件后,绝对没有任何反应。

我尝试在 WinDbg.exe 中启动它并得到以下输出:http ://pastebin.com/43PbwyGx

那么我该如何调试它以找出缺少的内容?

4

2 回答 2

2

查看您的 WindDbg 转储,您有第二次机会执行CLR exception - code e0434352 (!!! second chance !!!).
我会看一下Igor Dvorkin的这篇文章,为什么我不断收到异常代码 e0434352。他在哪里讨论它是一个通用异常以及如何启动 cdb 以查找底层异常是什么。

他还链接到他的另一篇博文,Finding CLR exceptions without visual studio,他在其中描述了使用 cdb。

于 2012-12-27T18:13:30.090 回答
0

开发机器是 64 位的,而其他机器是 32 位的吗?如果是这种情况并且您正在构建为 AnyCPU,那么您的所有引用也需要是 AnyCPU(或匹配您的程序运行的平台)。如果您构建为 x64,那么我认为您的所有引用也必须是 x64,x86 也是如此。

通常,在这种情况下您会看到的异常是 BadImageFormatException(它通常也使用 Side By Side Configuration 的来源记录到 Windows 应用程序事件日志中)。

此外,仅供参考,有时您可能能够在 Windows 事件日志中找到异常。我认为是应用程序日志,我认为源通常是 .NET 运行时或应用程序错误。详细信息可能包括实际异常以及堆栈跟踪。

我不确定要记录这些错误需要满足哪些条件,但这是需要考虑的事情。

于 2012-12-28T04:38:29.417 回答