有没有办法在安装应用程序时删除Loader Lock Exception.我确实理解它可能不是最好的解决方案,但似乎只有当我使用ReportViewer启动WindowsElementHost并且这导致问题时才会发生这种情况,因此我真的不知道还有什么可以解决它.
与2003年一样,所有版本的XP都存在这个问题.
在Windows 7和Vista中,我在调试和安装的产品时从未遇到过该错误.同样适用于2008和2008R2.
>也许这是Report Viewer控件本身的一个错误,您应该更新到更高版本.我注意到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 – 基本上它涉及设置环境变量并向应用程序添加一些行.config文件(另请参阅documentation for Loader Lock MDA以查看新行应该是什么样子).我没试过,但我认为它可能对您有用,作为最后的解决方案 – 只需确保彻底测试您的应用程序,以避免不良副作用.
为了获得更多帮助,我建议你这样说明:
>您正在使用的报告查看器的版本;>您要定位的.NET Framework版本(特别包括Service Pack);>为Windows XP安装了什么Service Pack;>您可以收集的任何堆栈跟踪或调试信息.