2012-06-23 46 views
8

当我在Windows XP上运行我的应用程序(WPF,VB.net 2008)时,出现奇怪的Windows错误。当我在出现错误和调试的机器上安装VS2008时。我有一个加载程序锁定异常,所以我进入调试并删除它。但是,我仍然在机器上安装时发生错误。VB.NET 2008加载程序锁定错误(仅适用于Windows XP?)

有没有办法在安装应用程序时删除Loader Lock Exception。我明白这可能不是最好的解决方案,但似乎只有当我使用ReportViewer启动WindowsElementHost时才会发生这种情况,并且这导致了问题,所以我不知道还有什么可以处理它。

XP的所有版本存在这样的问题,与2003年

在Windows 7和Vista中我从来没有遇到这个错误,而调试和安装的产品。 2008和2008R2也一样。

+0

关于“进入调试并删除它”:这是否意味着应用程序在使用VS2008在Windows 7计算机上进行调试时出现错误,然后再“删除”它? – rskar

+0

我的意思是我进入了Debug - > Exception并从LoderLock中删除了Thrown复选框。这会导致调试结束,但不是已安装的产品。 –

+0

几年前,我与Crystal Reports Viewer有完全相同的问题,但我无法记住我们如何修复它。我想说这是在应用程序的编译属性中的东西,但我不积极 – Rachel

回答

3

我已经做了一点点研究和下面你可以找到我的猜测:

  • 也许它的报表查看器控件本身的错误,你应该升级到更高版本。我注意到,2012年12月发布了一个新版本(参见this post),据推测,它们都运行在.NET 3.5和4.0上(所以它应该可以在VB 2008中使用,请参阅download page);
  • 我注意到Report Viewer 2008 SP1需要.NET 3.5 SP1(请参阅download page) - 也许过时的版本会触发您所看到的异常;
  • 也许Windows XP没有更新到最新的Service Pack,或者是错误的版本 - 同样,Report Viewer 2010 SP1需要Windows XP SP3(请参阅download page),Report Viewer 2012不能在Windows XP Starter Edition上运行;
  • 也许它是由报表查看器使用的库,它会导致此异常(特别是混合模式程序集) - 转储或堆栈跟踪对此有帮助;
  • 这个thread在Visual Studio Tools for Office论坛中有一个全面的答案,列出了几个资源来理解这个问题;
  • 上一个链接表明,在某些情况下,忽略此锁定是安全的。如果通过在Visual Studio下进行测试并且禁用了Loader Lock MDA,您会发现没有问题,您可以使用此blog post中的说明禁用生产计算机中的MDA - 基本上它涉及设置环境变量并向app.config添加一些行文件(请参阅Loader Lock MDA的documentation以查看新行的外观)。我还没有尝试过,但我认为它可能对您有用,作为最后的解决方案 - 只要确保彻底测试您的应用程序以避免不良副作用。

为了得到更多的帮助,我建议你这样注明:

  • 版本的报表查看您正在使用的;
  • 您所针对的.NET Framework版本(特别包括Service Pack);
  • 为Windows XP安装了哪些Service Pack;
  • 您可以收集的任何堆栈跟踪或调试信息。
+0

至于XP我说所有版本到目前为止。该程序将用于多平台环境,所以几乎所有的XP版本都经过了相同的测试。 –

+0

感谢您的答复 - 一个猜测被排除。你可以用你的回复内容更新这个问题吗?通过这种方式,其他用户可以在问题中找到所有相关信息,而无需浏览评论。 – edymtt

+0

@DavidBrunelle感谢您的赏金。请让我知道关于在生产中禁用Loader Lock的提示(或其他任何解决此问题的方法)。 – edymtt

相关问题