NativeProcess无法在Windows上运行C#WPF应用程序

时间:2012-01-13 16:25:22

标签: c# wpf process air

我们有一个运行WPF应用程序的Adobe Air(AS3)应用程序。但WPF应用程序无法以这种方式运行。我在EventViewer中找到了以下错误消息:

Faulting application name: Easysoft_MultiTouch_Document.exe, version: 1.0.0.0, time stamp: 0x4f0f2f9e
Faulting module name: KERNELBASE.dll, version: 6.1.7600.16385, time stamp: 0x4a5bdfe0
Exception code: 0xe0434352
Fault offset: 0x000000000000aa7d
Faulting process id: 0xeac
Faulting application start time: 0x01ccd20c9e406d25
Faulting application path: E:\Apps\PDFProgram\Easysoft_MultiTouch_Document.exe
Faulting module path: C:\Windows\system32\KERNELBASE.dll
Report Id: dc656dc1-3dff-11e1-8870-00268330b66c

以下是运行WPF应用程序的Adobe Air代码:

// following condition is true 
 if(NativeProcess.isSupported)
        {
        var file:File = new File("E:\\Apps\\GalleryProgram\\Easysoft_MultiTouch_Document.exe");
        trace(file.name);
        var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
        nativeProcessStartupInfo.executable = file;

        var process:NativeProcess = new NativeProcess();


        process.start(nativeProcessStartupInfo);
        //....
   }

我写了另一个C#应用程序来运行这个WPF可执行文件,但它也失败了。

如何解决这个问题? WPF应用程序可以通过这种方式运行吗?任何解决方案?

提前致谢...

2 个答案:

答案 0 :(得分:2)

您从流程中看到的特定异常代码是0xe0434352。这表明托管异常被抛出。这意味着WPF进程很可能正在启动,至少要加载CLR并运行托管代码,然后抛出未处理的托管异常。

这意味着故障最有可能出现在WPF应用程序中。你有没有确认它可以在盒子上独立运行?如果是这样,那么我会设置调试器在应用程序启动时附加,通过Adobe Air运行场景并查看此进程崩溃的原因。

答案 1 :(得分:1)

我会尝试在WPF应用程序中引入阻塞点并将异常记录到文本文件中,以便您获得有关错误的其他信息,如下所示:

        AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

然后,在回调中,将任何异常详细信息写入文件:

    static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        if (e.IsTerminating)
        {
            // Add your logging code here.
        }
    }

通过这种方式,您可以获得有关坠机背后原因的更多信息,您可以在那里开始。