.net可执行文件在xp上构建,无法在Windows 7上启动 - werfault

时间:2011-08-27 07:40:05

标签: .net windows deployment windows-7

我在Windows XP工作站上创建了一个.NET应用程序,它工作正常。 但是,如果我尝试在Windows 7上运行它,应用程序根本无法启动 - 没有窗口,没有错误消息,没有任何可见性。我已经尝试了7中的兼容模式的每种组合,但没有人工作。 我在任务管理器中唯一能看到的是,当我在Windows 7上同时启动werfault.exe进程启动应用程序时,几秒后它们都会消失。

是否有werfault.exe日志文件或要检查的内容以了解发生了什么?

由于

3 个答案:

答案 0 :(得分:2)

您可以尝试查看Windows事件日志。它可能包含有关错误的信息。也尝试以管理员身份运行。您还应该确保在Windows 7计算机上安装了正确的.NET框架。

答案 1 :(得分:0)

耐心等待,并向专家学习:)

http://blogs.msdn.com/b/tess/archive/2008/06/05/setting-net-breakpoints-in-windbg-for-applications-that-crash-on-startup.aspx

较低级别的调试程序(如WinDbg)可以在最困难的时候提供帮助。

在您的情况下,如果您运行!pe,则会发生未处理的异常,并且WinDbg + SOS可以显示异常详细信息。

祝你好运。

答案 2 :(得分:0)

WinForms的默认项目模板缺少一些它应该避免这些问题的try / catch块。

表单构造函数是一个简单的

InitializeComponent();

最好有一个try / catch块,它会抛出一个显示错误的消息框。

Program.cs中的Main相同

在这些方法出错时,我偶尔会遇到显示消息框的问题,所以我求助于显示控制台窗口:

[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool AllocConsole();

然后致电:

string msg = "Some explanation.";
AllocConsole();
Console.WriteLine(msg);
MessageBox.Show(msg);