【问题标题】:XAML usercontrol trouble in XPXP中的XAML用户控制问题
【发布时间】:2011-09-23 10:02:04
【问题描述】:

我在 winforms 应用程序中嵌入了一个相当复杂的数据绑定 XAML 用户控件。 当我尝试从 Windows XP(SP3+更新)机器打开表单时,我得到一个 nullreferenceexception“找不到对象引用”。当我使用同一用户登录但通过 Windows 7 机器时,它工作正常(在调试器和发布中)。

除了XP机器没有安装VS2010,所以我不能做任何花哨的调试之外,我还能做些什么来为失败的xaml控件返回更多有用的调试数据。另外,是否有人知道可能导致此问题的任何 XP/Windows 7 差异?

谢谢!

【问题讨论】:

  • 您的应用程序使用的 .net 版本是否安装在两者上?
  • 您可以在 application.xaml.cs 级别记录未处理的异常吗?只是想看看究竟什么时候发生了对象引用异常。
  • 这是一个常见的误解,即您需要在调试目标上安装 VS:只需将远程调试器客户端放在上面,从开发机器上的 VS 连接到它,然后您就可以像往常一样调试了。除此之外,你可能安装了不同版本的库,我不认为 XP + 更新与 Win7 相同。
  • 我确实在两者上都安装了相同的 .net 版本(并作为先决条件进行了检查)。
  • @26071986 - 没有 application.xaml.cs,因为它是 winforms 应用程序中的用户控件,但我明白这一点 - 会进行一些更高级别的未处理异常检查。

标签: c# wpf xaml windows-xp


【解决方案1】:

为了获取更具体的信息,我所做的是围绕我的 InitializeComponent();使用 try catch,然后启动 MessageBox.Show,异常如下:

try
{
    InitializeComponent();
}
catch (Exception e)
{
    MessageBox.Show(e.toString());
}

如果您可以这样做,您可以向我们发布有关您的异常的更多具体信息。

注意:那个特定的问题发生在我身上。我包围了 Initialize,发现我必须在 XP 上运行的 Release 项目中添加更多的 dll...

【讨论】:

  • 另外,如果您使用线程,请将整个线程包装在 try/catch 中,否则您仍然会错过除 ui 线程之外的其他线程中的异常
  • 帮我找到了问题 - 遗憾的是仍然难以理解原因!问题描述here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多