无法在 Windows 10上安装 Windows SDK 7.1

我是一个拥有 Windows10电脑的软件开发人员。我必须支持一些使用 Windows SDK 7.1在 Visual Studio 2010中编写的旧软件

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

无法安装某些组件

某些 WindowsSDK 组件需要 RTM。NET 框架4。安装程序检测到。NET 框架4。如果继续使用安装程序,则不会安装这些组件。如果要安装这些组件,请单击“取消”,然后安装。NETFramework4,然后重新运行安装程序。

然而,Windows10附带了。NET 4.5,所以就我所知,还有另一个版本检查问题。

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

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

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

77149 次浏览

我也遇到了同样的问题。不知道这样做实际上有多安全,但是我能够通过暂时愚弄安装程序,让它认为我有一个不同的版本来解决这个问题。NET 4.0安装。我打开 过程监察并使用它来监视 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

在我的 Windows10机器上,这两个目前都是 4.6.00079。安装程序似乎不喜欢这个值。我用 regedit 中的字符串 4.0.30319临时替换了它们,以匹配 InstallPath 中的值,这似乎起到了作用。当然,当我完成后,我把它们放回原来的样子。

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

可能有一种比实际修改注册表更安全/更容易的方法来拦截注册表读取,但这对我来说已经足够简单了!

我偶然发现了另一个解决方案,我也在 Msdn 线程上发布了它:

  1. 首先从控制面板卸载任何 VisualC + + 2010可重新发布版本。

  2. 从 WindowsSDK 归档下载相应的 离线 ISO 图像离线 ISO 图像

  3. 挂载映像后,直接打开 F: Setup SDKSetup.exe。

@ dougg3的回答:

首先安装 SubInAcl,可以从 Microsoft给你下载。您可能需要将它添加到您的 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"

下载 exe。将扩展名由‘ exe’改为‘ zip’。现在解压文件。在/Setup 目录中运行 SDKSetup.exe

我只需要快速编译别人的代码,这就是我在 Windows10上的解决方案。

Https://www.microsoft.com/en-us/download/details.aspx?id=4422

在您的计算机上安装 SDK 7.1,它大多会在编译器附加程序上失败,但是您需要这个第一。

现在从 Microsoft 安装这个编译器包:

Http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=4422

然后,它将安装编译器,并使得使用编译器成为可能。

上面的 Dougg3给出了很好的答案。为了帮助其他人,我经历了这个过程,拍了一些截图,以防它对任何人有帮助。我有64位的 Windows10。

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

enter image description here

顶部写着 Owner 的地方点击 Change 链接 enter image description here

下一个图像有两个步骤-首先点击高级从“选择用户或组”,然后点击查找现在按钮下一个对话有相同的标题。 enter image description here

找到要更改所有者的用户,然后单击 OK enter image description here

在下一页点击 OK

enter image description here

转到您的用户,您刚刚选择在前面的对话框中,然后选择允许完全控制,然后单击确定 enter image description here

现在您可以编辑版本。 enter image description here

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

如果您在这里尝试安装 psycopg2,请确保您的 pip 是最新的,否则您将得到这些错误。

pip install -U pip

pip install psycopg2-binary

看-http://initd.org/psycopg/docs/install.html