What goes on under the hood when the user chooses "Repair" on their .NET installation?

116 Views Asked by At

In particular, we've created an .msi installer that installs assemblies to the GAC, and has a built-in DoRegisterTypeLib operation on msxml3.dll. However (and somehow), the bad msxml3.dll version (8.70.1104.0, which Microsoft knows about) still exists on some end-users' PCs. And that DoRegisterTypeLib fails (with error code 11) if the msxml3.dll is that bad version. We tell our end-users to "Repair" their .NET installation, and boom, everything works.

So again, what does this "Repair" do? Does it update certain/any Microsoft .dlls?

And even if we shouldn't make that DoRegsiterTypeLib on that (or any .dll), I still really want to know what "Repair .NET" does under the hood. Any insight anyone has would be appreciated!

1

There are 1 best solutions below

5
On

It goes through each component and checks that its KeyPath is present and correct.

It will register dll and components, and copy missing corrupt files to the INSTALLDIR

You could activate the LOG for the repair The first step is to turn on logging for windows installer. You can either do this when you run the MSI (assuming you're directly running the MSI file, not using control panel) or use a registry setting to turn on logging globally. See http://support.microsoft.com/kb/223300 for details.