Ok, before even starting I have to tell you this is a long, tedious and probably (quite likely) not 100% reliable solution. You’ll notably need some secondary OS (the easiest/fastest way is probably to grab an installation CD of Ubuntu and use it as a liveCD), and be ready to use it to manipulate some Windows system files (folder, actually)… It will very likely upset some of your programs, too, even though on my computer all ended well in the end (but at some point, my PC Tools Firewall did complain a little).
If you’re still with me, on with the problem and its solution 🙂
When installing the latest Graphviz (graphviz-2.26.3.msi) on Windows 7 x64, I got blocked by the following error:
An error occurred during the installation of assembly 'Microsoft.VC80.CRT,type="win32",version="8.0.50727.42", publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="amd64"'. Please refer to Help and Support for more information.
Some researched showed me that this can occur on various other Windows versions: Vista 32 bits, probably Windows XP (here’s a sure one), another one on an unspecified flavor of Windows 7, etc. So globally, it can happen with any “recent” Windows version, from XP to Vista.
From the look of it, I assumed this was once again an issue related to some Visual C++ Redistributable package, and after trying quite a few I eventually tracked it down to Microsoft Visual C++ 2005 SP1 Redistributable Package (x64 in my case). As a matter of fact, here is the original error from that Visual C++ 2005 Redistributable:
Error 1935.An error occurred during the installation of assembly 'Microsoft.VC80.CRT,type="win32",version="8.0.50727.42", publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="amd64"'. Please refer to Help and Support for more information.
The possible solutions
At first I tried the kind of thing that previously worked fine with the Windows SDK issue: I uninstalled almost all my Visual C++ Redistributable packages (I write “almost” because, strangely enough, the Catalyst Control Center was still up and working after I removed what I thought was the last one…). Then I ran the installer again: no success, even after a restart.
I then tried to look for solutions on Internet.
I found that weird one saying to install Visual C++ Express 2008… I didn’t even try it. In that same thread, which was for Vista, someone suggested to install SP1. I didn’t try updating my Windows either.
I also found a link to Microsoft’s knowledge base (sorry I lost it already) suggesting to repair/reinstall the .NET Framework 2.0. Well, I tried that, but the problem is that the installer will refuse to run on Windows 7 because the .NET Framework 2.0 is already included in Windows 7…
And finally, I found this, a bug reported SEVEN years ago and closed as “won’t fix” :s. The solution is simple: “It is a known issue when installing multiple interim releases. Go to %windir%\WinSxS and rename each *vc80* file to a different name. Then re-run setup.” Ok, that was posted by the time of Windows XP. Now in Windows Se7en, you can’t rename or move those files, even if you’re on an Administrator account. So we need… that other OS we mentioned at the beginning. I’m going to mention that disclaimer once again: messing with those system files can upset Windows and some of your programs. If you’re
crazy brave enough, let’s continue 🙂
If your other OS happens to be some kind of Linux, you need first to mount your Windows partition (in Ubuntu just go to “Places” then pick the partition and voilà). Then open a terminal window, browse to the Windows partition (
cd /media and then
ls to find out the name of the Windows partition, then
cd thenameyoufound). Once you’re in the root of your Windows partition:
sudo mkdir winsxsBAK
sudo mv *vc80* ../winsxsBAK
Here we are: we moved all folders containing “vc80” elsewhere. The strange thing with this is that, actually, when searching that winsxs folder on Windows, you see that it contains *vc80* files which can’t be seen nor moved from Linux. Never mind that though, moving what we moved is enough.
Now reboot on Windows. It may say something about applying updates or such, my guess is that it’s processing the changes we made to the winsxs folder. I then tried installing Graphviz again, and it still wasn’t working, but the error message was different (something about a missing dll or system file, I didn’t take a screenshot).
Now reboot (again) on Linux. We are going to… move back all those *vc80* folders. So, same as before, go to your Windows partition, then:
sudo mv *vc80* ../winsxs
Finally (this should be the last one now ;)), reboot on Windows. Once again, it will probably say something about applying updates or such. Try to install Graphviz again… hopefully it will work (it did for me!).
Oh, and did I mention the best part: the installer of Graphviz reinstalled precisely one of those Visual C++ 2005 Redistributable that I uninstalled earlier…
Update (2011-04-16): I forgot to mention that the Graphviz team is now aware of that issue, but the fix isn’t trivial with their current installer builder, thus the lack of a patched one yet.