[program name].exe has stopped working

2019-06-16 14:24发布

问题:

I have a .NET application that was built on Framework 2.0.

  • I've built an installer for it and am trying to run it on a machine that has 3.5.
  • All relevant environments are on Windows 7
  • The application runs perfectly in VS debug mode on my development machine, which also has Framework 3.5.
  • The installer runs fine on both my development machine and the user's machine
  • After installation, running the program immediately results in "[program name].exe has stopped working" with no further information
  • I had the user try installing Framework 2.0, but was blocked by the "you must use the enable/disable features dialog"
  • I've looked into a few other things like DEP, setting the assembly to Windows 7 compatibility mode, and so forth
  • I don't believe it's any specific error in the application, because it has a splash screen that just displays a jpeg image before doing anything else, and even that doesn't appear; seems like it must be an overall compatibility issue.

I have no idea what to do next. I'm hoping someone can at least suggest a way for me to get additional error information when running the .exe so I can pinpoint the problem.

Thanks in advance.

Mike

EDIT 1

Here is the error I found in the event log:

Log Name:      Application
Source:        Application Error
Date:          10/10/2013 1:42:49 PM
Event ID:      1000
Task Category: (100)
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      [my development machine]
Description:
Faulting application name: BARTJr.exe, version: 1.0.0.1, time stamp: 0x5256e6de
Faulting module name: KERNELBASE.dll, version: 6.1.7601.18229, time stamp: 0x51fb1677
Exception code: 0xe0434f4d
Fault offset: 0x000000000000940d
Faulting process id: 0x%9
Faulting application start time: 0x%10
Faulting application path: %11
Faulting module path: %12
Report Id: %13
Event Xml:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2013-10-10T17:42:49.000000000Z" />
    <EventRecordID>19455</EventRecordID>
    <Channel>Application</Channel>
    <Computer>mcaputow7.ezesoft.net</Computer>
    <Security />
  </System>
  <EventData>
    <Data>BARTJr.exe</Data>
    <Data>1.0.0.1</Data>
    <Data>5256e6de</Data>
    <Data>KERNELBASE.dll</Data>
    <Data>6.1.7601.18229</Data>
    <Data>51fb1677</Data>
    <Data>e0434f4d</Data>
    <Data>000000000000940d</Data>
  </EventData>
</Event>

EDIT 2

The error references a temp file with additional info. Here are the contents of that file:

<?xml version="1.0" encoding="UTF-16"?>
<WERReportMetadata>
    <OSVersionInformation>
        <WindowsNTVersion>6.1</WindowsNTVersion>
        <Build>7601 Service Pack 1</Build>
        <Product>(0x1): Windows 7 Ultimate</Product>
        <Edition>Ultimate</Edition>
        <BuildString>7601.18113.amd64fre.win7sp1_gdr.130318-1533</BuildString>
        <Revision>1130</Revision>
        <Flavor>Multiprocessor Free</Flavor>
        <Architecture>X64</Architecture>
        <LCID>1033</LCID>
    </OSVersionInformation>
    <ProblemSignatures>
        <EventType>CLR20r3</EventType>
        <Parameter0>ssms.exe</Parameter0>
        <Parameter1>2011.110.2100.60</Parameter1>
        <Parameter2>4f35e2d9</Parameter2>
        <Parameter3>System.Management</Parameter3>
        <Parameter4>4.0.0.0</Parameter4>
        <Parameter5>4ba1e140</Parameter5>
        <Parameter6>d0</Parameter6>
        <Parameter7>1c</Parameter7>
        <Parameter8>RXOEJIH3RSKJEZ4XXWPXUDKCPPWJODNG</Parameter8>
    </ProblemSignatures>
    <DynamicSignatures>
        <Parameter1>6.1.7601.2.1.0.256.1</Parameter1>
        <Parameter2>1033</Parameter2>
        <Parameter22>0a9e</Parameter22>
        <Parameter23>0a9e372d3b4ad19135b953a78882e789</Parameter23>
        <Parameter24>0a9e</Parameter24>
        <Parameter25>0a9e372d3b4ad19135b953a78882e789</Parameter25>
    </DynamicSignatures>
    <SystemInformation>
        <MID>BAB83330-1394-44F8-8298-044776CE31CB</MID>
        <SystemManufacturer>Microsoft Corporation</SystemManufacturer>
        <SystemProductName>Virtual Machine</SystemProductName>
        <BIOSVersion>090004</BIOSVersion>
    </SystemInformation>
</WERReportMetadata>

回答1:

This is resolved. I eventually thought to try "Run as Administrator", which allowed me to see the actual error that was occurring. It makes no sense that Admin privileges are required to get a .NET unhandled exception dialog to show up, but there it is.



回答2:

I've experience this many times before, and every time it's because the destination computer doesn't have an assembly (DLL) that is referenced by my application. When the application references an assembly that is needed right away, e.g. before the startup form (for a Win forms project) can be displayed, then it will crash in that manner.

Anyway, I'm not promising that's your answer, but it's something to look at.



回答3:

Put below code in your enterpoint (Main) first That can capture exception before crash

AppDomain.CurrentDomain.UnhandledException += (sender,e)=>{
    if(e.IsTerminating)
    {
        //TODO: write your log
    }
};


回答4:

I came up with this issue just now,and I found that it was the loss of some dll that led to the problem. I forced to terminate the update of the application and I guess that may be the cause of the loss.