Что происходит под капотом, когда пользователь выбирает "Восстановить" при установке.NET?

В частности, мы создали установщик MSI, который устанавливает сборки в GAC и имеет встроенную операцию DoRegisterTypeLib для msxml3.dll. Однако (и каким-то образом) плохая версия msxml3.dll (8.70.1104.0, о которой Microsoft знает) все еще существует на компьютерах некоторых конечных пользователей. И что DoRegisterTypeLib завершается ошибкой (с кодом ошибки 11), если msxml3.dll - это плохая версия. Мы говорим нашим конечным пользователям "Восстановить" их установку.NET, и бум, все работает.

Итак, еще раз, что делает этот "Ремонт"? Обновляет ли он определенные / какие-либо Microsoft .dll?

И даже если мы не должны делать этот DoRegsiterTypeLib для этого (или любого.dll), я все еще очень хочу знать, что делает "Ремонт.NET" под капотом. Любое понимание кого-либо будет оценено!

1 ответ

Он проходит через каждый компонент и проверяет наличие и правильность его KeyPath.

Он будет регистрировать DLL и компоненты, а также скопировать недостающие поврежденные файлы в INSTALLDIR

Вы можете активировать журнал для ремонта. Первый шаг - включить регистрацию для установщика Windows. Вы можете сделать это, когда вы запускаете MSI (при условии, что вы запускаете файл MSI напрямую, не используя панель управления), или используете параметр реестра, чтобы включить глобальное ведение журнала. См. http://support.microsoft.com/kb/223300 для получения подробной информации.

Другие вопросы по тегам