使用.NET应用程序进行故障排除,该应用程序无法启动

7
我经常遇到.NET应用程序无法启动的问题(在除我自己的系统之外的其他系统上)。事实是,我不能总是创建一个运行顺畅的包。因此,我经常需要发送我的Debug或Release文件夹的ZIP文件。
我的真正问题是这些应用程序不告诉我为什么它们没有启动。如果我从命令行启动它们,也不会得到任何异常,甚至在尝试在所有应用程序的Try Catch块上打印输出结果时也是如此……我错过了什么吗?
大多数情况下,缺少库或与安全相关的问题。但是找到具体发生了什么将是很好的 :D
4个回答

3

您尝试查看融合日志了吗?Suzanne Cook在这里写了一篇文章

另一件要做的事情(以最小化静默错误):最小化您的Main方法;原因是JIT按方法工作,如果它无法JIT Main,则无法使用您的异常处理:

/* for winform, you still new [STAThread] here */
static void Main() {
  try {
     MainCore();
  } catch (Exception ex) {
     // shout about it
  }
}

[MethodImpl(MethodImplOptions.NoInlining)] // usually overkill
static void MainCore() {
  // real code
}

3

1

我曾经遇到过一个问题,WPF应用程序无法启动 - 原来问题与用户PC上的字体有关 - 禁用WindowsPresentationFontCache服务解决了这个问题。

我还在其他地方找到了以下信息...

由于某种未知原因,客户端在注册表键中有错误条目,这些条目用于构建堆栈跟踪中引用的“默认字体系列”缓存。要求客户端导出HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts下的条目,并将文件发送给我。有几个字体文件名以破折号(---)奇怪地开头。这些被修复后,向客户端发送了一个注册表文件进行导入。之后,应用程序成功启动!

还可能需要删除字体缓存,请参考此链接中的说明http://support.microsoft.com/kb/937135


0

我知道这并没有直接解决问题 - 但是你尝试过发布你的应用程序了吗(假设你正在使用Visual Studio)?这个应该将所有需要的东西打包到安装程序中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接