Не удается установить Windows SDK 7.1 в Windows 10
Я разработчик программного обеспечения на ПК с Windows 10. Я должен поддерживать некоторые старые программы, написанные в Visual Studio 2010, используя Windows SDK 7.1
Пытаясь настроить среду разработки, я успешно установил VS2010 и пришел установить Windows SDK 7.1, однако установщик выдает ошибку:
Некоторые компоненты не могут быть установлены
Для некоторых компонентов Windows SDK требуется RTM .NET Framework 4. Программа установки обнаружила предварительную версию.NET Framework 4. Если продолжить установку, эти компоненты не будут установлены. Если вы хотите установить эти компоненты, нажмите Отмена, затем установите.NET Framework 4 по http://go.microsoft.com/fwlink/?LinkID=187668 а затем снова запустите программу установки.
Тем не менее, Windows 10 поставляется с.NET 4.5, так что, насколько я могу судить, существует еще одна проблема проверки версии.
Меня это не очень беспокоит, но при попытке установить обновление компилятора Visual Studio 2010 это не получается, говоря
не могу установить, потому что Windows SDK 7.1 не найден
Попытка установить.NET 4 терпит неудачу, потому что он обнаруживает более позднюю версию.NET.
7 ответов
Я наткнулся на другой обходной путь, который я также разместил в потоке msdn:
Сначала удалите все распространяемые файлы Visual C++ 2010 с панели управления.
Загрузите соответствующий автономный образ ISO из архива Windows SDK. Это список, который ISO, который.
После монтирования образа откройте F:\Setup\SDKSetup.exe напрямую.
Я просто столкнулся с этой же проблемой. Не знаю, насколько это безопасно на самом деле, но я смог обойти это, временно обманув установщика, заставив его думать, что у меня установлена другая версия.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.30319
в regedit, чтобы соответствовать значению от InstallPath, и это, казалось, добилось цели. И, конечно же, когда я закончил, я вернул их на прежнее место.
Однако у меня не было разрешения изменить эти значения, так что это было немного сложно. Я щелкнул правой кнопкой мыши на Client
ключ, выбрал Permissions и нажал Advanced. Затем я изменил владельца на свою учетную запись пользователя вместо TrustedInstaller. Это позволило мне добавить разрешения для полного контроля для себя, чтобы я мог изменить Version
значение. Я повторил тот же процесс на Full
ключ. После успешного завершения установки я помещаю исходные значения версии обратно в (4.6.00079
), удалил разрешения, которые я добавил для себя, и восстановил владельца в TrustedInstaller (для этого введите NT SERVICE\TrustedInstaller
как имя пользователя).
Возможно, есть более безопасный / более простой способ перехватить чтение реестра, чем изменение реестра, но для меня это было достаточно просто!
Ответ @dougg3:
Сначала установите SubInAcl, можно скачать с Microsoft здесь. Возможно, вам придется добавить его в свой PATH, например: set PATH=%PATH%;C:\Program Files (x86)\Windows Resource Kits\Tools
Затем выполните эти команды в командной строке с повышенными правами:
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"
Отличный ответ от Dougg3 выше. Просто так, чтобы это помогло другим, я прошел весь процесс и сделал несколько снимков экрана на случай, если это кому-нибудь поможет. У меня есть 64-битная Windows 10.
Это путь к файлу reg edit, на который ссылался Дугг. Здесь нажмите на кнопку Дополнительно
Там, где написано "Владелец", нажмите ссылку "Изменить".
Следующее изображение состоит из двух шагов - сначала нажмите "Дополнительно" в "Выберите пользователя или группу", затем нажмите кнопку "Найти сейчас" в следующем диалоговом окне с таким же названием.
Найдите пользователя, на которого хотите сменить владельца, и нажмите ОК.
Нажмите ОК на следующей странице
Перейдите к вашему пользователю, которого вы только что выбрали в предыдущих диалогах, затем выберите "Разрешить полный доступ", затем нажмите "ОК".
Теперь вы можете редактировать версию.
После того, как вы закончите с этим, верните номер версии к тому, что был раньше, и отмените полный контроль над этим реестром.
Установите SDK 7.1 на свой компьютер, он больше не будет работать на дополнениях компилятора, но вам это нужно в первую очередь.
Теперь установите этот пакет компилятора от Microsoft:
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=4422
Затем он установит компилятор и позволит использовать его.
Скачать exe измените расширение с "exe" на "zip". распакуйте файл сейчас. запустите SDKSetup.exe из каталога /Setup
Мне просто нужно было быстро скомпилировать чужой код, и это было исправлением для меня в Windows 10.
https://www.microsoft.com/en-us/download/details.aspx?id=4422
Если вы здесь пытаетесь установить psycopg2
убедитесь, что ваш пункт обновлен, иначе вы получите эти ошибки.
pip install -U pip
pip install psycopg2-binary