[program name].exe has stopped working

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>
    

    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.


    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, eg 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.


    首先将下面的代码放入您的输入点(主),这可以在崩溃之前捕获异常

    AppDomain.CurrentDomain.UnhandledException += (sender,e)=>{
        if(e.IsTerminating)
        {
            //TODO: write your log
        }
    };
    
    链接地址: http://www.djcxy.com/p/16478.html

    上一篇: 如何使用apache solr搜索日期

    下一篇: [程序名称] .exe已停止工作