I spent days (not full time, eh ^^) figuring out how to do this one. So here are pointers for installing Visual C++ 2010 Express (just pointers because I didn’t keep it in the end – so basically I’ll just give you the offline installer), and the most detailed Windows SDK installation troubleshooting guide I can think of, after trying every posted solution and ending up finding out a new (yet simple) one.
NB: all this was done on Windows 7 x64 Enterprise.
Getting the offline installers
For Visual C++ 2010 Express, you can’t get an offline installer without downloading the full Visual Studio 2010 Express ISO. So, well just go there and pick All – Offline Install ISO image file. You can then just mount the ISO (using a tool such as Daemon Tools), or extract it (for instance 7-Zip can do it) into some directory, then browse to the VCExpress folder and run the setup there. To save disk space, you can just keep the C++ folder (VCExpress) and discard the rest (around 380 MiB if compressed using 7-Zip vs 693 MiB for the full ISO).
For the Windows SDK, the offline installer can be found there (Microsoft Windows SDK for Windows 7 and .NET Framework 4 (ISO)). Also, note that the “web” installer is (as of today) no more up-to-date than the offline one. Note that you have to choose between 3 ISOs: GRMSDK_EN_DVD.iso is for x86, GRMSDKX_EN_DVD.iso is for x64, and GRMSDKIAI_EN_DVD.iso is for Itanium. Then, same story as for Visual Studio: either mount the ISO or extract it somewhere.
Solving the most useless error message I’ve ever seen
NB: if you’re in a hurry, just skip until the “Summary of possible solutions for this Windows SDK installation problem” section.
When installing the Windows SDK, I got stuck by the following error message:
A problem occurred while installing selected Windows SDK components.
Installation of the “Microsoft Windows SDK for Windows 7” product has reported the following error: Please refer to Samples\Setup\HTML\ConfigDetails.htm document for further information.
Please attempt to resolve the problem and then start Windows SDK setup again. If you continue to have problems with this issue, please visit the SDK team support page at http://go.microsoft.com/fwlink/?LinkId=130245.
Click the View Log button to review the installation log.
To exit, click Finish.
As you can see, there is no real error message there, plus the file referred to by the message is nowhere to be found. At first I tried searching online for solutions, here is what I found (NB: none of those worked for me, but maybe they will for you, as the error message is likely a generic error which can be triggered by quite a few very different causes):
- On CTRL+F5, they suggest to run regedit then change the ownership of key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components
(and its subkeys) from SYSTEM to the Administrators group (see the link if you need more details on how to do this). - On that same site, they say that if the previous method doesn’t work, you can also make sure that your TEMP and TMP environment variables all point to the same folder (so in my case, and probably yours too, it means deleting your user-specific TEMP and TMP variables). Once again, check out the above-mentioned link if you need more details on how to perform this.
Those fixes didn’t work for me, and I realized I could check the installation log. Which indicated what component was screwing everything up:
10:16:59 06 April 2011: F:\PROGRAMMING\Microsoft SDKs\Windows\v7.1\Setup\SFX\vcredist_x64.exe installation failed with return code 5100
10:17:15 06 April 2011: [SDKSetup:Error] Config_Products_Install: Installation of Product Microsoft Windows SDK for Windows 7 (failed): Please refer to Samples\Setup\HTML\ConfigDetails.htm document for further information. Stack: at SDKSetup.Product.ConfigureRelatedSfx() at SDKSetup.Product.ConfigureNewProduct(ManualResetEvent CancelEvent)
So… vcredist_x64.exe is the culprit then. (Note that if your installation log doesn’t indicate the same error, then probably you can stop reading now as my fix will most likely not work in your case). As previously, I first tried to search online for solutions. The only thing I found was this, basically saying “make sure the Windows Modules Installer service is up and running”. Mine was already.
Finally, I thought why not try to install that vcredist_x64.exe myself, stand-alone. Vcredist_x64.exe is the name taken by basically every Microsoft Visual C++ Redistributable Package (x64): any version of it. So I first tried the latest one, Visual C++ 2010 SP1 Redistributable Package (x64), which offered me to either repair or remove. I picked repair. I tried installing the Windows SDK again, still no success. I thought maybe the vcredist aren’t cumulative, so tried to install the previous version, Visual C++ 2010 Redistributable Package (x64)… and it failed, saying that I already had a more recent version (which was true since I had SP1). But that error message puzzled me, as it really didn’t look graceful: it felt more like a real failure rather than a “you already have a better version, no need to add this one so all done”. And so I decided to uninstall my Visual C++ 2010 SP1 (I just reran the installer previously mentioned and this time picked remove instead of repair). Note that to be able to uninstall VC++ 2010 SP1 I had to kill parts of my Catalyst drivers (the AMD Fuel service as well as CCC.exe (Catalyst Control Center:Host application) in the task manager).
With the Visual C++ 2010 SP1 Redistributable Package removed, I ran the Windows SDK installer again and it worked fine. It installed the Visual C++ 2010 Redistributable Package, which I updated then with its SP1. All working good now, hurray! 🙂
Note that the Windows SDK installs both the x86 and x64 versions of Visual C++ 2010 Redistributable. I didn’t have the x86 version already installed, but if you do my best guess is that you’ll need to remove it too.
Summary of possible solutions for this Windows SDK installation problem
- Uninstall Visual C++ 2010 SP1 Redistributable Package (as of today this is totally mandatory to be able to install the Windows SDK) (both x64 and x86 if applicable)
- Make sure the Windows Modules Installer service is up and running
- Change ownership of
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components
to the Administrators group (not sure if it’s really needed) - Make sure that all your TEMP and TMP environment variables (global and user) all point to the same folder (once again, not sure if it’s really needed… but it’s always good to have all temporary folders at the same place: easier to clean ;))
No problem, I like being the official unofficial M$ support, it’s good for traffic 😉
This worked great!
thanks… really helpful
Deinstalling MS VC++ 2010 Redistributable solved my Problem too. Many thanks.
removing c++ 2010 both x86 and x64 works 4 me
Thank you dear PCR,
Your technical approach was also worked for me.
Thank you!
Removing the Microsoft Visual C++ 2010 Redistributable x64 and x86 solved the problem!
Yeah, this is gorgeous!
Thanks a lot, PCR, for determining this MS-bug.
Haha, gorgeous is the word. Pure Micro$oft fail style: they hide the error log, and when you finally reach it you find out it’s just a component getting a Darwin award… 😉
Thank you very much. Fortunately, I found this page before hours (or days) of frustration. Would older versions of C++ (2008 & 2005) affect this at all? I may have removed some after uninstalling part of 2010.
No I don’t think the older versions were an issue when I wrote this post: I had a bit of everything installed, and the only version I had to remove was the 2010 redistributable, as far as I remember.
But technically, if they upgraded 2008 or 2005 since then without updating the Visual C++ 2010 installer, I guess it’s a possibility that they cause trouble now…
thank you!!!
This DO solve my problem! Thank you!
Does, but you’re still welcome 😉
thank you 🙂
+1
i have tried some solutions before, but deleting “Visual C++ 2010 SP1 Redistributable Package” fixed the problem finally. Thanks!
awesome!!! It worked like a charm!!! We love you
Just uncheck the option “install redistributables” upon SDK installation
lol, never noticed this one 😀 Maybe it’s a new option they introduced as a “fix”
Hi there would you mind letting me know which webhost you’re working with? I’ve loaded your blog in 3 completely different web browsers and I must say this blog loads a
lot quicker then most. Can you recommend a good web hosting provider at a reasonable
price? Many thanks, I appreciate it!
I use both 1&1 and OVH.
Great!
Thanks
Many thanks to this article 🙂
It worked for me by uninstalling the x86 variant.
It’s a shame that Microsoft still has not learned how to develop useful error messages.
how do i find if the windows modules installer service is running?
i googled a little bit and found that the process for the service is trustedinstaller.exe, it wasnt running and i do not know how to start it, google wasnt hepful either
how exactly do i get this service up and running?
thanks
Hi,
I don’t remember how I did that. Most likely you just go to services management (open the start menu and type “services”, you should get to the right place then), find “Windows Modules Installer” in the list, and check its status.
I think I love you!
This is the single most important webpage for everyone who attends my university! We all are given laptops with some preinstalled and preconfigured software as part of our school’s laptop program. So everyone who needs the SDK runs into this same set of problems.
😀
My logfile reported a failure with the _x86 redistributable. I deselected the ‘install redistributables’ when trying to install but the install still failed. I searched for and found three
vcredist_x86.exe files (one in a YouCam folder, another in an Intel folder and the third in a Qt4 folder). I ran one of these and removed the redistributable.
The SDK in now installing as I write.
Thank you.
Regards.
Mike
thankyou so much for this!!
PCR, Thanks a lot! Removing the 2010 redistributable worked in my case.
Thanks! This really helped.
Yes, removing both x64 and x86 redistributable works for me, thank you. Regards André
This really works!!! Remember to remove Both x64 and x86 redistribution (i.e., using vcredist_x64 and vcredist_x86.) Thanks a lot!
thank you. It works for me 🙂
I just noticed that Microsoft included this information in a knowledge base article there: http://support.microsoft.com/kb/2717426
Since they are now officially aware of both the problem and its fix, I really don’t understand why they don’t fix it instead of just copying this work-around…
Thanks mate! Uninstalling Visual C++ 2010 SP1 Redistributable Package made it work!
Good work!! Thanks a lot !
You have made my day.. It solved my issue with Server 2008 R2
No problem. You must be one of the first visitors to our new server, too! 😉 (I just reconfigured the DNS a few minutes ago)
Thank you! Very helpful.
Uninstalling Visual C++ 2010 worked, thanks
Thanks a lot. Uninstalling Visual C++ 2010 worked for me too.
My problem was that I had at least 6 C++ Redistributable packages installed.
From 2005, 2008, 2010 and 2013.
I had to use my uninstaller to remove all, but before I realized the registry stuff and checked TEMP dirs.
It really worked after uninstalling ALL C++ packages from my machine.
Interesting. In my case I had a few older ones (2008 at least, maybe also 2005) installed too, and I didn’t have to uninstall them for this to work. I don’t know about 2013 though, it wasn’t available yet 😉
This is exactly what I needed. Silly Microsoft for making programs that can’t check for updated versions of the same program.
I did have to run the uninstall for both x86 and x64 though. And then reboot. And then wallah!
Thanks very much! Your first recommendation,
Uninstall Visual C++ 2010 SP1 Redistributable Package
was all I had to do.
Thanks.
Ok, None of these methods worked for me.
What worked, was to install each package separately using the install programs in each sub-directory of the SDK disk. For 64-bit installation, go into each *amd64 directory, and run the install or setup script. Yes, you do need *amd64 even for Intel platforms.
Sequence:
1. Install Dot NET 4.0
2. Install each package from SDK disk. (Do not use the top level SDK install program)
3. Install Patch.
Hope this helps.
thank you! i had the return error 5100 as well, this solution worked
Good!