- 已编辑
- #1
netfx 1.1是官方支持NT4的,要求的最低环境是NT4 SP6a+IE5.01,但在实际环境中经常安装不成功,到最后注册dll时总是提示抛出异常。后来考虑给netfx 1.1集成sp1后再装,居然成了。下面是网上找的具体集成方法,记录一下(经过了简化)
- 准备好netfx 1.1和sp1的安装包,假设文件名分别是netfx11.exe和sp1.exe
- 用管理员安装方式安装netfx 1.1到某一临时目录,假设为C:\123,命令:
netfx11 /c:"msiexec /a netfx.msi targetdir=c:\123"
说明一下这条命令开头的格式,m$所有类似的自解压包(如9x时期的补丁包)都有/c /t /q等参数,自己用/?查一下。还有几个参数是未公开的。比如静默安装+不重启是/q:a /r:n
执行后会弹出正常的安装过程,但安装结果只是把netfx 1.1的内容解压到了指定的目录下。如果目录不存在,会自动创建 - 解压sp1包里的msp文件(可指定具体路径和文件名,msp文件才是打补丁时实际使用的),为了方便就解压到C:\123\sp1.msp,命令:
sp1 /xp:c:\123\sp1.msp
执行过程没有任何提示。等几秒钟,会发现C:\123里面多了一个sp1.msp。如果没有指定路径,会把msp解压到sp1.exe的同级目录;如果没有指定文件名,会生成一个随机的文件名 - 把刚才解压得到的msp应用到netfx.msi。在C:\123下执行
msiexec /a netfx.msi /p sp1.msp
执行后会弹出msiexec的配置对话框。对话框消失后,C:\123里的文件没变,但netfx.msi已经集成了这个msp的内容,此时msp文件可以删了。用这个文件夹里的netfx.msi就可以装出集成sp1的netfx 1.1了,NT4下安装不再报错 - 由于NT6官方已不再支持netfx 1.1,如果有特殊需要在NT6上安装netfx 1.1的,也得自己集成sp1再装,不然各种233。但注意:如果要制作for 9x/NT4的安装包,最高只能在没安装Windows Installer 4.5(KB942288)的系统上制作(M$在4.5之前的最高独立版本是3.1,没放出4.0),否则系统打不开集成后的msi!!!我是在打满补丁的w2k上操作的(Windows Installer版本3.1.4000.4033)。实测新装的XP SP3不能制作(Windows Installer版本3.1.4001.5512),解压sp1的时候提示找不到要修补的程序(奇怪);新装的03 SP2可以制作(Windows Installer版本3.1.4000.3959),但有bug,管理员安装那一步某些时候解压的路径和指定的路径不一样,或者目录不存在时不能自动创建;NT6和打满补丁的XP/03制作的安装包9x/NT4都打不开,NT5才能打开(Windows Installer 4.5最低支持5.1 SP2和5.2 SP1,NT6.0 SP0/1自带4.0, 6.0 SP2自带4.5)