我的C#程序在其他计算机上导致APPCRASH - c#

我用C#用.Net 4.0编写了一个程序,并且在我编译该程序的两台计算机中都可以很好地工作。但是,当我将该程序复制到其他计算机上时,该程序甚至没有显示其UI,而是发出了一个MessageBox,如下所示:

盒子上说我的程序引起了APPCRASH。任何人都知道如何解决该问题?

参考方案

可能有几个原因。较常见的一种是针对目标计算机没有的.NET框架进行编译。另一个可能是您要为64位编译,而目标计算机是32位。

解决此问题的一些步骤:

如果您使用的是Visual Studio,请右键单击您的项目,然后转到Properties
Application选项卡中,检查列出了哪个Target framework。可能是.NET Framework 4.5.1。
将其更改为.NET Framework 4客户端配置文件,然后查看它是否在目标计算机上运行。
另外,在Build下检查以查看选择了哪些Platform target选项并进行相应调整。选择x86而不是Any CPU可能会有所帮助。

其他想法/提示:

从屏幕截图中可以看出,您似乎正在Windows 7计算机上运行它,因此我怀疑.NET Framework是问题所在。在这种情况下,请确保目标计算机包含您正在使用的所有适当的库。如果您有一些非本机库,请确保将它们的Copy Local设置为true

顺便说一句...当您说要复制它时,我假设您正在复制所有适当的文件以及可执行文件,对吗?您可能需要复制一些文件,例如库,应用程序配置文件等。

大卫·海金(David Khaykin)提到了一个事实,那就是您那里可能有未处理的异常。因此,按照此SO thread中的建议,您可能要为AppDomain.CurrentDomain.UnhandldedException事件实现一个事件处理程序,并检查e.ExceptionObject.ToString()的值。

这是MSDN链接可帮助您解决此问题(滚动至底部以查看示例):http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception(v=vs.110).aspx

分析崩溃的一些方法:

这是一篇简洁的文章,描述了如何分析崩溃:

http://blogs.msdn.com/b/anandbms/archive/2005/04/20/410225.aspx

它使用AdPlus,您可以在http://support.microsoft.com/kb/286350上阅读并获取更多信息。

这是指向WinDbg调试工具的更直接链接:http://msdn.microsoft.com/en-us/windows/hardware/hh852365(向下滚动至一半,如果您使用的是OS,请确保获得Windows 7版本)。

这些只是我在C#冒险过程中所做的一些事情,因此希望其中之一可以为您提供帮助。

如何使用ASP.NET ViewState使用JavaScript - c#

我的页面中有UL,它为空。我开始使用JavaScript使用LI填充它。在回发阶段如何在asp.net中使用此新添加的动态数据?那是因为我的提交按钮是asp.net控件。我不想使用JS POST。谢谢 参考方案 我过去通过在隐藏字段中填充要发布的动态数据来完成此类操作,您可以-在回传之前触发JavaScript事件,该事件将数据从UL解析到隐藏字段中要么更新…

如何从.Net DLL获取公共出口列表? - c#

我可以使用“ dumpbin”和“ dll export”之类的工具来查看标准win32 DLL的公共入口点(“ exports”),例如Windows \ SYSTEM32 \ GDI32.dll。但是,当我在.Net DLL上使用这些相同的工具时,我看到的仅仅是 2000 .reloc 2000 .rsrc 48000 .text 我有一个C#/。Net…

将asp.net c#变量分配给javascript数组 - c#

我有2个工作部分的代码,需要将它们放在一起第1节-用户可以访问页面,查看和编辑数据库的内容,其中包括新闻文章,标题,相关链接等,我设法使其正常工作并将数据保存到数据库中第2条-该网站首页上的javascript新闻滚动器会写出一系列div,然后使用javascript和CSS对其进行旋转,使其看起来像在滚动,同样可以。新闻文章是从首页上硬编码的数组中提取的问…

如何在ASP.NET Core Web应用程序中增加JSON反序列化MaxDepth限制 - c#

我们正在将ASP.NET Core 2.1与.NET Framework 4.6.2结合使用。我们有一个客户需要向我们的Web应用程序发送一个很大程度上嵌套的json结构。当他们进行此调用时,我们将输出以下日志并返回错误: 读取器的MaxDepth超过了32。路径“ super.long.path.to property”,第1行,位置42111。”我浏览了…

ASP.NET MVC 5自定义登录,无需脚手架,数据库优先 - c#

我对asp.net和mvc还是很陌生,所以我正在努力学习尽可能多的知识...为此,我从头开始编写博客网站,但是我对身份验证和授权有些困惑。由于我倾向于不真正使用任何脚手架的东西,所以我首先要使用数据库,所以不希望asp.net身份为我创建表。我对散列和加盐密码很酷,并对照数据库检查用户,我遇到的麻烦是将用户设置为登录状态并检查他们应该能够访问什么。我真的很想…