因为工程软件安装需要依赖.net3.5,同时要适配win7、win8、win10,然而用户那边的系统环境的多样化, 可能有些版本的window 系统没有自带.net3.5,于是将.net3.5的安装包放到软件安装包中, 然后在安装过程中自动安装.net3.5, 打包工具为innoset up,.net3.5包为NetFx3.cab。
问题就出在了软件安装时使用DISM安装NetFx3.cab报错0x00f081f,这种情况也不是在所有的系统下会出现, 我这边是在某些版本号的专业版win8.1、win10才会出现。安装NetFx3.cab的脚本中使用如下这段"c:\Windows\system32\DISM.exe /online /Enable-Feature /all /FeatureName:NetFx3 /Source:"c:\Windows" /LimitAccess" , 将之改成"c:\Windows\system32\dism.exe /online /add-package /packagepath:C:\WINDOWS\netfx3.cab"成功安装,具体原因没有详究, 猜测是因为加了"/all"之后, 在安装.net3.5的时会强制安装包中所有的功能吧, 可能某部分功能在当前系统无法安装, 才导致0x00f081f错误。按照以上修改后,.net35安装成功, 软件成功走完安装流程。