安装win sdk 8,提示错误:管道正在被关闭。
查看安装log文件,有如下错误:
Error 0x800700e8: Failed to write message type to pipe.
Error 0x800700e8: Failed to write send message to pipe.
Error 0x800700e8: Failed to send BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_MSI_PACKAGE message to per-machine process.
Error 0x800700e8: Failed to configure per-machine MSI package.
系统是win7 64,也有装Windows6.1-KB2670838-x64.msu 补丁。
按网上提示的修改注册表方式也没有效果:https://blogs.msdn.microsoft.com/vsnetsetup/2013/10/04/visual-studio-2012-fails-with-an-error-the-pipe-is-being-closed/
最后用了必杀技,从一个正常安装的机器直接拷贝安装后的sdk目录,到有问题的win7机器,例如拷贝C:\Program Files (x86)\Windows Kits\8.0到win7的相应sdk安装目录下(虽然win7上安装失败但还是有些文件残留的,直接覆盖即可)。
然后注册表添加如下KitsRoot键值,注意路径要修改为win7上的实际目录:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots] "KitsRoot"="C:\\Program Files (x86)\\Windows Kits\\8.0\\"
将上述文本保存为.reg执行即可。
注:在我的使用场景下需要KitsRoot,所以将其添加到了注册表,其他情况下不排除可能还要其他注册表项,Windows Kits下有一些其他项,需要的话可以尝试添加,祝你好运!