8

我有一个基于 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>
4

4 回答 4

3

这解决了。我最终想尝试“以管理员身份运行”,这让我可以看到正在发生的实际错误。显示 .NET 未处理的异常对话框需要管理员权限是没有意义的,但它确实存在。

于 2013-10-10T23:14:42.243 回答
0

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

无论如何,我不保证这是你的答案,但这是值得一看的。

于 2013-10-10T16:01:51.990 回答
0

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

AppDomain.CurrentDomain.UnhandledException += (sender,e)=>{
    if(e.IsTerminating)
    {
        //TODO: write your log
    }
};
于 2015-12-03T09:52:35.983 回答
0

我刚才想出了这个问题,我发现是丢失了一些dll导致了这个问题。我被迫终止应用程序的更新,我想这可能是丢失的原因。

于 2017-06-15T03:15:59.557 回答