Mono虽好,可是他毕竟不是Microsoft .NET Framework,至少它的WinForms是采用了java里swing同样的方法,所以无论用户的主题多么漂亮,WinForm都是传统的Windows界面,作为桌面应用时就显得格格不入。
安装
但.NET核心文件并不多(相对而言,相比mono你会发现他很庞大)
我给出我的报告文件,看这个要比看那2mb的log轻松得多。
///
files:
c:/windows/system32/mscoree.dll
c:/windows/system32/mscorier.dll
c:/windows/system32/mscories.dll
c:/windows/system32/dfshim.dll
c:/windows/system32/netfxperf.dll
这几个文件一定要放在system32下面
C:/windows/system32/mui/0409/mscoreer.dll
C:/windows/system32/mui/0409/mscorees.dll
我猜想mui下面其他版本的也是必须的
C:/WINDOWS/assembly/GAC_32/mscorlib/ 2.0.0 .0__b 77a 5c 561934e089
c:/windows/assembly/gac_32/[others]
需要其他的组件也要添加,比如System.Windows.Forms
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorjit.dll
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorwks.dll
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/[others]
这个文件夹下面只需要mscorjit.dll mscorwks.dll两个文件就可以使console运作正常,其他的我还没试过
c:/windows/winsxs/Manifests/...
c:/windows/winsxs/policies/...
c:/windows/winsxs/...
winsxs下有很多重要的组件,版本也很繁杂。确保一个都不能少。这些文件支撑着mscorwks.dll,没有他,mscorwks也无法加载。
REG:
HKEY_CLASSES_ROOT/TypeLib/{BED 7F 4EA -1A 96-11D2 -8F 08 -00A 0C 9A 6186D}
HKEY_CLASSES_ROOT/TypeLib/{BED 7F 4EA -1A 96-11D2 -8F 08 -00A 0C 9A 6186D}/2.0 = REG_SZ, "mscorlib.dll"
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/.NETFramework/InstallRoot = "REG_SZ,C:/WINDOWS/Microsoft.NET/Framework/"
只要设置了安装位置,jit自己能找到相应的framework
有了这些文件,你就能运行.net 2.0的程序了。
当然这是最小要求。
我提供这些文件清单不是想让你把他们弄到你客户的电脑里去,而是希望有人能做出像thinstall那样的虚拟环境供程序运行,那么提供thinstall那样的功能也就不是什么难事了。
.NET Framework时,他对你系统的改动还真不少,光是一个记录文件就有2mb。(在一个不带.net framework的winxp sp2虚拟机上安装.net framework 2.0得到)