Windows SDK 7.1 kann unter Windows 10 nicht installiert werden


77

Ich bin ein Softwareentwickler mit einem Windows 10-PC. Ich muss ältere Software unterstützen, die in Visual Studio 2010 mit Windows SDK 7.1 geschrieben wurde

Beim Versuch, die Entwicklungsumgebung einzurichten, habe ich VS2010 erfolgreich installiert und Windows SDK 7.1 installiert. Das Installationsprogramm gibt jedoch den folgenden Fehler aus:

Einige Komponenten können nicht installiert werden

Für einige Windows SDK-Komponenten ist RTM .NET Framework 4 erforderlich. Setup hat eine Vorabversion von .NET Framework 4 erkannt. Wenn Sie mit Setup fortfahren, werden diese Komponenten nicht installiert. Wenn Sie diese Komponenten installieren möchten, klicken Sie auf Abbrechen, installieren Sie .NET Framework 4 unter http://go.microsoft.com/fwlink/?LinkID=187668 und führen Sie das Setup erneut aus.

Windows 10 wird jedoch mit .NET 4.5 geliefert, soweit ich das beurteilen kann, gibt es noch ein weiteres Problem mit der Versionsprüfung.

Dies würde mich nicht so sehr beunruhigen, aber beim Versuch, das Visual Studio 2010-Compiler-Update zu installieren, schlägt dies fehl

kann nicht installiert werden, da Windows SDK 7.1 nicht gefunden wird

Der Versuch, .NET 4 zu installieren, schlägt fehl, da eine spätere Version von .NET erkannt wird.


1
Nur zu beachten - Windows 10 wird mit .NET 4.6 geliefert
NextInLine

2
Mögliches Duplikat des Windows SDK-Setup-Fehlers
JohnC

Antworten:


27

Die Antwort von @ dougg3 lautet:

Erste SUBINACL installieren, kann von Microsoft heruntergeladen werden hier . Möglicherweise müssen Sie es Ihrem PFAD hinzufügen, z.set PATH=%PATH%;C:\Program Files (x86)\Windows Resource Kits\Tools

Führen Sie dann diese Befehle in einer Eingabeaufforderung mit erhöhten cmd-Werten aus:

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"

Nett! Ich sollte darauf hinweisen, dass sich die .NET-Versionsnummer in der Registrierung seit meiner ursprünglichen Antwort geändert hat und meine Version derzeit auch nicht mit der Version in dieser Antwort übereinstimmt. Für alle, die dieses Skript ausführen möchten, ist dies wahrscheinlich die beste um zuerst Ihre Registrierung zu überprüfen und das Skript entsprechend zu ändern.
Dougg3

Bearbeitet, um die Bemerkung von @ dougg3 zu berücksichtigen, die Version in der Variablen zu halten und auf den gleichen Wert zurückzusetzen
janv8000

1
reg ADD "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full" /v Version /t REG_SZ /d %CurrentNDPv4ClientVersion% /reg:32 /f- Sollte es nicht sein %CurrentNDPv4FullVersion%? Es hat den gleichen Wert auf meiner Maschine ..
Lukas Z.

Arbeitete auch hier. Vergessen Sie nicht, zuerst VC ++ 2010 Redistributables zu deinstallieren, wie in Jeremys Antwort angegeben.
mklein9

Hoppla, wenn Ihr Benutzername Leerzeichen enthält, schlägt dies fehl. Ersetzen Sie also% username% durch "% username%". Auch in meiner Windows 10-Installation war subinacl.exe nicht da, ich musste es hier herunterladen: microsoft.com/en-us/download/confirmation.aspx?id=23510
Arya S.

86

Ich bin auf eine andere Problemumgehung gestoßen, die ich auch in einem MSDN-Thread gepostet habe :

  1. Deinstallieren Sie zuerst Visual C ++ 2010 Redistributables in der Systemsteuerung.

  2. Laden Sie das entsprechende Offline-ISO-Image aus dem Windows SDK-Archiv herunter . Hier wird aufgelistet, welche ISO welche ist.

  3. Öffnen Sie nach dem Mounten des Images F: \ Setup \ SDKSetup.exe direkt.


3
Ändert nichts für mich: Die C ++ - Compiler können nicht installiert werden :( Der Beitrag von @ dougg3 hat es geschafft.
CedX

@ CédricBelin gleiches Problem, haben Sie eine Lösung für dieses Problem?
Xavierzhao

2
@xavierzhao Verwendete schließlich die Anweisungen im Nodegyp-Repository und installierte die Visual C ++ Build Tools .
CedX

1
Es hat auch bei mir funktioniert, aber zuerst musste ich .Net 4.6.2 entfernen und 4.0 erneut installieren .
Mattia72

10
Danke, hat für mich gearbeitet. Beachten Sie jedoch Folgendes: Laden Sie die richtige ISO für Ihr System herunter. Die Download-Seite enthält 3 Dateien und keine Erklärung dazu. GRMSDK_EN_DVD.isoist für x86, GRMSDKX_EN_DVD.isoist für x64 und ich nehme an, GRMSDKIAI_EN_DVD.isoist für Itanium.
Thomas Levesque

77

Ich bin gerade auf dasselbe Problem gestoßen. Keine Ahnung, wie sicher dies tatsächlich ist, aber ich konnte es umgehen, indem ich den Installer vorübergehend täuschte, ich hätte eine andere Version von .NET 4.0 installiert. Ich habe Process Monitor geöffnet und damit alles überwacht, was setup.exe tat, um herauszufinden, wie festgestellt wurde, dass ich eine "Vorabversion" von .NET 4.0 hatte.

Es stellt sich heraus, dass diese beiden Zeichenfolgen in der Registrierung betrachtet werden:

  • 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

Auf meinem Windows 10-Computer sind dies derzeit beide 4.6.00079. Dem Installationsprogramm scheint dieser Wert nicht zu gefallen. Ich habe beide vorübergehend durch die Zeichenfolge 4.0.30319in regedit ersetzt, um dem Wert von InstallPath zu entsprechen, und das schien den Trick zu tun. Und als ich fertig war, habe ich sie natürlich wieder so gemacht, wie sie ursprünglich waren.

Ich hatte jedoch keine Berechtigung, diese Werte zu ändern, daher war es etwas schwierig. Ich habe mit der rechten Maustaste auf den ClientSchlüssel geklickt , Berechtigungen ausgewählt und auf Erweitert geklickt. Dann habe ich den Eigentümer in mein Benutzerkonto anstelle von TrustedInstaller geändert. Dadurch konnte ich für mich selbst Berechtigungen für Vollzugriff hinzufügen, um den VersionWert zu ändern . Ich wiederholte den gleichen Vorgang auf dem FullSchlüssel. Nachdem das Installationsprogramm erfolgreich abgeschlossen wurde, habe ich die ursprünglichen Versionswerte wieder in ( 4.6.00079) eingefügt, die für mich hinzugefügten Berechtigungen gelöscht und den Eigentümer in TrustedInstaller wiederhergestellt (geben Sie dazu NT SERVICE\TrustedInstallerden Benutzernamen ein).

Es gibt vielleicht eine sicherere / einfachere Möglichkeit, die Registrierungslesevorgänge abzufangen, als die Registrierung tatsächlich zu ändern, aber das war für mich einfach genug!


Ich bin erst nächste Woche in der Nähe der win10-Maschine, aber das klingt gut für mich.
Greg

Ich habe beide Werte geändert und erhalte immer noch den gleichen Fehler, wenn ich versuche, sie zu installieren dotNetFx40_Full_setup.exe. Dieser Registrierungs-Fix löst das Problem für mich nicht.
Arvo Bowen

2
@ArvoBowen Der Registrierungs-Hack hilft Ihnen nicht bei der Installation von .NET 4.0. Damit können Sie das Windows SDK 7.1 installieren. Sie sollten dotNetFx40_Full_setup.exe nicht ausführen müssen, da in Windows 10 .NET 4 bereits installiert ist.
Dougg3

@ dougg3 Ich habe das SDK endlich direkt installiert, ohne die Registrierungsschlüssel zu ändern. Aber die Nachricht sagt ...require the RTM .NET Framework 4. Setup detected a pre-release version of the .NET Framework 4. Ich dachte also, wenn es eine "Vorabversion" erkennen würde, würde ich die "Standard" -Version von .Net 4 installieren wollen. Aber ich habe es geschafft, sie auf dieser Route zu installieren. Stackoverflow.com/a/32534158/1039753 danke !
Arvo Bowen

5

Tolle Antwort von Dougg3 oben. Nur damit es anderen hilft, habe ich den Prozess durchlaufen und einige Screenshots gemacht, falls es jemandem hilft. Ich habe 64-Bit-Windows 10.

Dies ist der Pfad für die Reg-Edit-Datei, auf den Dougg verwiesen hat. Ths Klicken Sie hier auf die Schaltfläche Erweitert

Geben Sie hier die Bildbeschreibung ein

Wo oben Eigentümer steht, klicken Sie auf den Link Ändern Geben Sie hier die Bildbeschreibung ein

Das nächste Bild besteht aus zwei Schritten: Klicken Sie zuerst unter "Benutzer oder Gruppe auswählen" auf "Erweitert" und dann im nächsten Dialogfeld mit demselben Titel auf die Schaltfläche "Jetzt suchen". Geben Sie hier die Bildbeschreibung ein

Suchen Sie den Benutzer, dessen Eigentümer Sie ändern möchten, und klicken Sie dann auf OK Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf der nächsten Seite auf OK

Geben Sie hier die Bildbeschreibung ein

Gehen Sie zu Ihrem Benutzer, den Sie gerade in den vorherigen Dialogen ausgewählt haben, wählen Sie Vollzugriff zulassen und klicken Sie dann auf OK Geben Sie hier die Bildbeschreibung ein

Jetzt können Sie die Version bearbeiten. Geben Sie hier die Bildbeschreibung ein

Nachdem Sie damit fertig sind, setzen Sie die Versionsnummer auf die vorherige zurück und machen Sie die vollständige Kontrolle für diese Registrierung rückgängig.


Ich weiß, dass dieser ursprüngliche Beitrag ein paar Jahre alt war, aber ich bin diese Woche auf dasselbe Problem gestoßen und habe seinen Beitrag gefunden, um die ordnungsgemäße Installation des Windows SDK zu unterstützen, mit dem ich ein Kit in QT erstellen konnte.
CAM_344

1
NT SERVICE\TrustedInstallerist der Name des ursprünglichen Besitzers. Ich schalte es wieder darauf um, als ich fertig war. Sie müssen den vollständigen Namen (nicht nur TrustedInstaller) eingeben, damit Windows weiß, wovon Sie sprechen. Sie müssen Berechtigungen / Eigentumsrechte auch nicht rekursiv anwenden, um das Installationsprogramm zum Arbeiten zu verleiten.
Merlyn Morgan-Graham

2

Installieren Sie SDK 7.1 auf Ihrem Computer. Bei Compiler-Extras schlägt dies meistens fehl. Sie benötigen dies jedoch zuerst.

Installieren Sie nun dieses Compilerpaket von Microsoft:

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

Anschließend wird der Compiler installiert und die Verwendung des Compilers ermöglicht.


Beachten Sie, dass im ersten Schritt (Installation von SDK 7.1) das Dialogfeld weiterhin angezeigt wird und der C ++ - Compiler immer noch abgeblendet ist. Außerdem: Der C ++ - Compiler ist in C:\Program Files\Microsoft Visual Studio 10.0\VC\bin.
user202729

0

Laden Sie die Exe herunter. Ändern Sie die Erweiterung von 'exe' in 'zip'. Extrahieren Sie die Datei jetzt. Führen Sie SDKSetup.exe im Verzeichnis / Setup aus



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.