我正在考虑将我的一个应用程序从VS2010移动到VS2012。解决方案由很多项目组成,因此我将尝试概述主要部分。
入口点是基于.NET 3.5 SP1的WPF应用程序。该项目引用了.NET 2.0类库和使用VS2008的VC90库编译的.NET 2.0 C ++ / CLR库。 .NET 2.0类库也使用C ++库。
我不使用很多外部二进制文件。事实上,除了WiX之外,唯一的事情就是WPF工具包 (http://wpf.codeplex.com/releases/view/29117)。
那会发生什么? 我在Win8上为VS2010编译了应用程序(为VC90库安装了VS2008),并且每个平台都运行良好。 现在,当我将解决方案移植到VS2012时(当然再次为VC90库安装了VS2008和VS2010)并创建了一个版本,它在Win7,Win8和Server 2008R2上运行良好。但是,VS2012创建的二进制文件在XP和Server 2003上启动时崩溃。我检查了已安装的.NET 3.5 SP1并使用VS2010创建的二进制文件对其进行了验证。他们工作。
错误是简单的崩溃报告窗口和包含以下详细信息的事件日志条目: .NET Runtime 2.0错误报告 错误应用程序application.exe,版本1.0.0.0,邮票50a39d24,错误模块kernel32.dll,版本5.2.3790.4480,邮票49c51e7e,调试? 0,故障地址0x0000bef7。
这对我没有任何帮助。关于如何解决这个问题或在哪里进一步研究的任何想法?
提前致谢!
答案 0 :(得分:1)
感谢您的投入。它指出了我正确的方向。我做了一个崩溃转储分析,导致我重新检查事件日志条目。事实上,我发现了我之前错过的另一个条目。在新计算机上出现了错误版本化VC90 DLL的并排错误。缺少VS2008 SP1安全更新。安装完并重新编译解决方案后,它现在可以按预期工作。
谢谢。