无法在Windows 10上安装Windows SDK 7.1

Gre*_*reg 73 .net visual-studio-2010 windows-10

我是Windows 10 PC的软件开发人员.我必须使用Windows SDK 7.1支持使用Visual Studio 2010编写的一些旧软件

在尝试设置开发环境时,我已经成功安装了VS2010,并开始安装Windows SDK 7.1,但是安装程序会给出错误:

某些组件无法安装

某些Windows SDK组件需要RTM .NET Framework 4.安装程序检测到.NET Framework 4的预发行版本.如果继续安装,则不会安装这些组件.如果要安装这些组件,请单击"取消",然后从http://go.microsoft.com/fwlink/?LinkID=187668安装.NET Framework 4 ,然后重新运行安装程序.

但是,Windows 10附带了.NET 4.5,所以据我所知,还有另一个版本检查问题.

这不会让我太担心,但是在尝试安装Visual Studio 2010编译器更新时,这失败了,说道

无法安装,因为找不到Windows sdk 7.1

尝试安装.NET 4失败,因为它检测到更高版本的.NET.

Jer*_*ong 84

我偶然发现了另一个解决方法,我也发布了一个msdn线程:

  1. 首先从控制面板卸载任何Visual C++ 2010 Redistributables.

  2. 从Windows SDK存档下载相应的脱机ISO映像. 列出了哪个ISO.

  3. 安装映像后,直接打开F:\ Setup\SDKSetup.exe.

  • 谢谢,为我工作.但有一点需要注意:请为您的系统下载正确的ISO.下载页面有3个文件,没有解释.`GRMSDK_EN_DVD.iso`适用于x86,`GRMSDKX_EN_DVD.iso`适用于x64,我假设`GRMSDKIAI_EN_DVD.iso`适用于Itanium. (8认同)
  • 不会为我改变任何东西:无法安装C++编译器:(来自@ dougg3的帖子就可以了. (3认同)
  • @xavierzhao最后使用了[Nodegyp repository](https://github.com/nodejs/node-gyp)上的说明,并安装了[Visual C++ Build Tools](http://landinghub.visualstudio.com/visual-cpp -build工具). (2认同)

dou*_*gg3 72

我刚遇到同样的问题.不知道这实际上是多么安全,但我能够通过暂时欺骗安装程序来考虑我安装了不同版本的.NET 4.0来解决它.我打开了Process Monitor并用它监视setup.exe正在做的所有事情,以便了解它是如何确定我有一个"预发布"版本的.NET 4.0.

事实证明,它在注册表中查看这两个字符串:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Client\Version
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full\Version

在我的Windows 10机器上,这些都是4.6.00079.安装程序似乎不喜欢这个值.我暂时使用4.0.30319regedit中的字符串替换它们以匹配InstallPath中的值,这似乎可以解决问题.当然,当我完成时,我把它们放回原来的样子.

但是,我没有权限更改这些值,因此有点棘手.我右键单击了Client密钥,选择了权限,然后单击高级.然后我将所有者更改为我的用户帐户而不是TrustedInstaller.这允许我为自己添加完全控制权限,以便我可以修改该Version值.我在Full钥匙上重复了同样的过程.安装程序成功完成后,我将原始版本值放回(4.6.00079),删除了我为自己添加的权限,并将所有者恢复为TrustedInstaller(为此,键入NT SERVICE\TrustedInstaller用户名).

拦截注册表读取可能比实际修改注册表更安全/更容易,但对我来说这很简单!

  • @ArvoBowen 注册表黑客不会帮助您安装 .NET 4.0;它允许您安装 Windows SDK 7.1。您不需要运行 dotNetFx40_Full_setup.exe,因为 Windows 10 已经安装了 .NET 4。 (3认同)
  • 另外,我不得不卸载Visual C++ 2010 (3认同)

jan*_*000 20

@ dougg3的回答脚本:

首先安装SubInAcl,可以在这里从微软下载.您可能需要将其添加到PATH中,例如:set PATH=%PATH%;C:\Program Files (x86)\Windows Resource Kits\Tools

然后在提升的cmd提示符中运行以下命令:

for /f "tokens=2*" %%a in ('reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client" /v Version /reg:32') do set "CurrentNDPv4ClientVersion=%%~b"
for /f "tokens=2*" %%a in ('reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full" /v Version /reg:32') do set "CurrentNDPv4FullVersion=%%~b"
subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4" /setowner="%username%"
subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4" /grant="%username%"=f
reg ADD "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full" /v Version /t REG_SZ /d 4.0.30319 /reg:32 /f
reg ADD "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client" /v Version /t REG_SZ /d 4.0.30319 /reg:32 /f

echo start your installer now
pause

reg ADD "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client" /v Version /t REG_SZ /d %CurrentNDPv4ClientVersion% /reg:32 /f
reg ADD "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full" /v Version /t REG_SZ /d %CurrentNDPv4FullVersion% /reg:32 /f

subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4" /revoke="%username%"
subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4" /setowner="NT SERVICE\TrustedInstaller"
Run Code Online (Sandbox Code Playgroud)


CAM*_*344 5

上面 Dougg3 的精彩回答。为了帮助其他人,我完成了整个过程并拍摄了一些屏幕截图,以防它对任何人有所帮助。我有 64 位 Windows 10。

这是 Dougg 引用的 reg 编辑文件路径。 这 这里点击高级按钮

在此处输入图片说明

在顶部显示所有者的地方单击更改链接 在此处输入图片说明

下一个图像有两个步骤 - 首先从“选择用户或组”中单击高级,然后在下一个具有相同标题的对话框中单击“立即查找”按钮。 在此处输入图片说明

找到您要更改所有者的用户,然后单击确定 在此处输入图片说明

在下一页点击确定

在此处输入图片说明

转到您刚刚在前面的对话框中选择的用户,然后选择允许完全控制,然后单击确定 在此处输入图片说明

现在您可以编辑版本。 在此处输入图片说明

完成此操作后,将版本号恢复为之前的版本号并撤消为自己提供对该注册表的完全控制权。