网上说法不一,MS说的 .net4.0 in-process side-by-side compatibility 也没太明白,以下是我用一个简单的控制台程序实测的情况
测试环境:
Win XP XP3 卸载了.net其他版本,只安装了.net 4.0,所调用的dll为之前用VS2008编译.
(若dll是源码工程放到解决方案一起编译,dll工程版本设成V2.0 V3.5,最终程序都可以正常)
主程序Console.exe | 调用程序集 dll | 运行结果 |
.Net4.0 | .Net 2.0 | 正常 |
.Net4.0 Client Profile |
.Net 2.0
|
编译不了 |
.Net4.0
|
.Net 3.5
|
正常 |
.Net 2.0 | 无 | 不能运行 |
.Net3.5 | 无 | 不能运行 |
结果:
1.编译为.Net 4.0的应用程序,不需要安装之前的版本.并且可以调用老版本程序集.Target为Client Profile的不可以.
2.单独运行之前版本的.net 程序,需要安装对应的framework
ps:
Microsoft .NET Framework 4 Client Profile (Standalone Installer) 41M
Microsoft .NET Framework 4 (Standalone Installer) 48M
reference: