我是一名使用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。
答案 0 :(得分:79)
我偶然发现了另一种解决方法,我也发布了msdn thread:
首先从控制面板卸载所有Visual C ++ 2010 Redistributables。
从Windows SDK存档中下载相应的offline ISO image。 This列出哪个ISO是哪个。
安装映像后,直接打开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。
下一张图片有两个步骤 - 首先点击“选择用户或群组”中的“高级”,然后点击下一个具有相同标题的对话框上的“立即查找”按钮。
点击下一页的确定
转到刚刚在先前对话框中选择的用户,然后选择“允许完全控制”,然后单击“确定”
完成此操作后,将版本号恢复为以前的版本号,然后撤消为该注册表提供完全控制权。
答案 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