无法在Windows 10上安装Windows SDK 7.1

时间:2015-08-19 09:28:25

标签: .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。

8 个答案:

答案 0 :(得分:79)

我偶然发现了另一种解决方法,我也发布了msdn thread

  1. 首先从控制面板卸载所有Visual C ++ 2010 Redistributables。

  2. 从Windows SDK存档中下载相应的offline ISO imageThis列出哪个ISO是哪个。

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

答案 1 :(得分:69)

我刚遇到同样的问题。不知道这实际上是多么安全,但我能够通过暂时欺骗安装程序来考虑我安装了不同版本的.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。安装程序似乎不喜欢这个值。我暂时用regedit中的字符串4.0.30319替换了它们,以匹配InstallPath中的值,这似乎可以解决问题。当然,当我完成时,我把它们放回原来的样子。

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

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

答案 2 :(得分:18)

@ dougg3回答脚本:

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

答案 3 :(得分:2)

在您的计算机上安装SDK 7.1,它将在编译器附加功能上失败,但您首先需要它。

现在从Microsoft安装此编译器包:

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

然后它将安装编译器并使其可以使用编译器。

答案 4 :(得分:1)

上面的Dougg3给出了很好的答案。就这样它有助于其他人,我经历了这个过程并拍了一些屏幕截图,以防它对任何人都有帮助。我确实有64位Windows 10。

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

enter image description here

顶部显示所有者的位置单击“更改”链接 enter image description here

下一张图片有两个步骤 - 首先点击“选择用户或群组”中的“高级”,然后点击下一个具有相同标题的对话框上的“立即查找”按钮。 enter image description here

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

点击下一页的确定

enter image description here

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

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

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

答案 5 :(得分:0)

下载exe。将扩展名从“exe”更改为“zip”。现在解压缩文件。从/ Setup目录中运行SDKSetup.exe

答案 6 :(得分:0)

我只需要快速编译其他人的代码,这就是我在Windows 10上的修复。

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

答案 7 :(得分:0)

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

pip install -U pip

pip install psycopg2-binary

请参阅-http://initd.org/psycopg/docs/install.html