![](/img/trans.png)
[英]Why does Windows Phone 7.1 SDK install VS 2010 express?
[英]Cannot install Windows SDK 7.1 on 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。
我刚刚遇到了同样的问题。 不知道这实际上有多安全,但我能够通过暂时欺骗安装程序使我认为我安装了不同版本的 .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
作为用户名)。
拦截注册表读取的方法可能比实际修改注册表更安全/更简单,但这对我来说已经足够简单了!
@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"
在您的计算机上安装 SDK 7.1,它通常会在编译器附加功能上失败,但您首先需要它。
现在从 Microsoft 安装这个编译器包:
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=4422
然后它将安装编译器并使使用编译器成为可能。
下载exe。 将扩展名从“exe”更改为“zip”。 现在提取文件。 从 /Setup 目录中运行 SDKSetup.exe
我只需要快速编译其他人的代码,这就是我在 Windows 10 上的解决方案。
https://www.microsoft.com/en-us/download/details.aspx?id=4422
如果您在这里尝试安装psycopg2
,请确保您的 pip 是最新的,否则您将收到这些错误。
pip install -U pip
pip install psycopg2-binary
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.