[程序名称] .exe已停止工作

我有一个建立在Framework 2.0上的.NET应用程序。

  • 我为它构建了一个安装程序,并试图在一台拥有3.5的计算机上运行它。
  • 所有相关的环境都在Windows 7上
  • 该应用程序在我的开发机器上以VS调试模式完美运行,该机器也具有Framework 3.5。
  • 安装程序在我的开发机器和用户机器上运行良好
  • 安装后,立即运行该程序导致“[程序名称] .exe已停止工作”,但没有进一步的信息
  • 我让用户尝试安装Framework 2.0,但被“您必须使用启用/禁用功能对话框”
  • 我已经研究过其他一些东西,例如DEP,将程序集设置为Windows 7兼容模式等等
  • 我不相信这是应用程序中的任何特定错误,因为它有一个启动屏幕,在做任何事情之前只显示一个jpeg图像,甚至没有出现; 看起来它必须是一个总体兼容性问题。
  • 我不知道下一步该怎么做。 我希望有人能够至少为我提供一种方式,让我在运行.exe时获得额外的错误信息,这样我就可以找出问题所在。

    提前致谢。

    麦克风

    编辑1

    这是我在事件日志中发现的错误:

    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>
    

    编辑2

    该错误引用具有其他信息的临时文件。 这是该文件的内容:

    <?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>
    

    这已解决。 我最终试图尝试“以管理员身份运行”,这让我看到了发生的实际错误。 没有必要使用管理员权限来获得一个.NET未处理的异常对话框来显示,但在那里。


    我以前经历过很多次,每次都是因为目标计算机没有我的应用程序引用的程序集(DLL)。 当应用程序引用立即需要的程序集时,例如在启动窗体(用于Win窗体项目)之前可以显示,那么它将以这种方式崩溃。

    无论如何,我不希望这是你的答案,但这是值得关注的。


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

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

    上一篇: [program name].exe has stopped working

    下一篇: Move selection after a DOM element