从.NET 3.5迁移到.NET 4.0后应用程序崩溃

5

最近我将桌面应用程序中的.NET从3.5升级到4.0。在我的开发机上运行正常。

但是,在某些生产机器上,它在启动时就会崩溃。

  1. Windows 8.1, Windows 7

    问题事件名称:APPCRASH
    应用程序名称:myApp.exe
    应用程序版本:2.0.0.0
    应用程序时间戳:553a56e8
    故障模块名称:KERNELBASE.dll
    故障模块版本:6.3.9600.17415
    故障模块时间戳:54504ade
    异常代码:e0434f4d
    异常偏移量:00014598
    操作系统版本:6.3.9600.2.0.0.256.4
    区域设置 ID:1045

  2. Windows XP SP3 with .NET 4.0

故障应用程序myApp.exe,版本2.0.0.0,时间戳553a56e8, 故障模块kernel32.dll,版本5.1.2600.6532,时间戳53203b53, 调试?0,错误地址0x00012fd3。

Enter image description here

请注意,源是.NET Runtime 2.0 Error。为什么呢?

该应用程序是在安装了.NET 4.0的机器上编译的。

这个解决方案中另一个(更小、更简单)为.NET 4.0编译的应用程序能够正常运行。

有任何想法吗?


听起来像是你的 web.config 文件中有一个不当的引用,你能把它贴出来吗? - Mathew Thompson
1
.NET 4.0 运行在 .NET 2.0 之上。 - recursive
2
@recursive .NET 4 不支持在.NET 2.0之上运行,只有3.0和3.5可以。 - xxbbcc
1个回答

10

您需要将文件App.config/web.config中的运行时.NET版本更改为:

<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

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