WPF C#应用程序部署-运行exe时不会发生任何情况

v440hwme  于 7个月前  发布在  C#
关注(0)|答案(3)|浏览(72)

我已经复制了Windows 7虚拟机和Windows Vista笔记本电脑上的Windows 7文件夹的内容。两者都安装了Dot Net 4.5。所有程序集都设置为复制本地和AFAIK我不引用应用程序文件夹以外的任何内容。当我在两台不同的开发人员计算机上运行应用程序时(一台Win8,一台Win7),它运行得很好,就像在Visual Studio中运行一样(F5)。
在部署计算机上不是这样。问题是我没有得到任何错误消息。在非开发计算机上双击可执行文件后,绝对没有任何事情发生。
我尝试在WinDbg.exe中启动它,得到以下输出:http://pastebin.com/43PbwyGx
那么我该如何去调试它,来找出缺少了什么呢?

axzmvihb

axzmvihb1#

看看你的WindDbg转储,你有一个第二次机会例外**CLR exception - code e0434352 (!!! second chance !!!)**。
我想看看 Igor DvorkinWhy do I keep getting exception code e0434352的这篇文章,他在文章中讨论了它是一个通用异常,以及如何启动cdb来查找底层异常是什么。
他还链接到他的另一篇博客文章Finding CLR exceptions without visual studio,在那里他描述了如何使用cdb。

zdwk9cvp

zdwk9cvp2#

开发机器是64位的,而其他机器是32位的吗?如果是这种情况,并且你是作为AnyCPU构建的,那么你所有的引用也需要是AnyCPU(或者匹配你程序运行的平台)。如果你是作为x64构建的,那么我认为你所有的引用也需要是x64,x86也是如此。
通常,在这种情况下,您将看到的异常是BadImageException异常(它通常也会记录到Windows应用程序事件日志中,其源为Side By Side Configuration)。
此外,仅供参考,有时您可能能够在Windows事件日志中找到异常。我认为这是应用程序日志,我认为源通常是.NET错误或应用程序错误。详细信息可能包括实际异常以及堆栈跟踪。
我不确定哪些条件需要为真才能记录这些错误,但这是需要考虑的问题。

nhaq1z21

nhaq1z213#

我通过检查Windows事件日志解决了我的问题,正如布兰登Dybala在上面指出的那样。初始表单显示导致了一个没有在try. catch块中捕获的错误,所以应用程序只是退出而没有任何UI输出(并将错误写入事件日志)。我修复了列出的错误,重新发布,一切都很好。总是使用try. catch块的好理由!

相关问题