none
.net 4.5 .net 4.0的差别 RRS feed

  • 问题

  • .net 4.5 和 .net 4.0  的 clr都是 4 的, 为什么 .net 4.5的 wpf程序 不能运行在 安装.net 4.0 的 xp上,提示 不是有效的win 32 应用程序

    我那个 wpf 只是一个很小的程序,基本就是个界面 , 把 targetFramework 切到 .net 4 上重新编译,xp 上就能运行了

    难道.net 的程序不光要clr 一致,还要版本都一致?

    请大神给说说原因!

    2015年1月7日 7:54

答案

全部回复

  • @kingof,

    版本也需要一致,.NET4.5虽然是基于.NET4.0的,但是他跟.NET4.0是完全不同的版本,当目标选择的是.NET4.5的时候你的目标机器必须要安装.NET4.5。

    而XP因为不支持.NET4.5所以你的程序运行不起来的。



    Barry
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年1月8日 3:33
    版主
  • 这点我就不太明白了!
    我的理解是:
    C#/VB ------>中间语言------->.net虚拟机执行中间语言----->运行

    .net 4.5 相比 .net 4.0 应该只是新增了一些类和函数,既然CLR是一样, 为啥 第3步就不行了呢?

    我理解错了么? 

    2015年1月8日 3:46
  • CLR不是一样,从4.0.30319.269升级到了4.0.30319.17379。

    CLR升级有向后兼容性,但是没有向前兼容性,所以你在旧CLR上运行新程序出错很正常。



    Visual C++ MVP

    2015年1月8日 5:25
    版主
  • 原理如此 ,怎么看到这个版本号呢?
    2015年1月8日 5:30
  • 取System.Environment.Version的值


    Visual C++ MVP

    2015年1月8日 5:46
    版主