3

特别是,我们创建了一个 .msi 安装程序,用于将程序集安装到 GAC,并在 msxml3.dll 上具有内置的 DoRegisterTypeLib 操作。但是(并且不知何故),错误的 msxml3.dll 版本(Microsoft 知道的 8.70.1104.0)仍然存在于某些最终用户的 PC 上。如果 msxml3.dll 是那个坏版本,那么 DoRegisterTypeLib 会失败(错误代码为 11)。我们告诉我们的最终用户“修复”他们的 .NET 安装,然后繁荣,一切正常。

再说一遍,这个“修复”是做什么的?它是否更新某些/任何 Microsoft .dll?

即使我们不应该在那个(或任何.dll)上创建那个DoRegsiterTypeLib,我仍然真的很想知道“修复.NET”在幕后做了什么。任何人的任何见解都将不胜感激!

4

1 回答 1

1

它遍历每个组件并检查其 KeyPath 是否存在且正确。

它将注册 dll 和组件,并将丢失的损坏文件复制到 INSTALLDIR

您可以激活 LOG 进行修复 第一步是打开 Windows 安装程序的日志记录。您可以在运行 MSI 时执行此操作(假设您直接运行 MSI 文件,而不是使用控制面板)或使用注册表设置来打开全局日志​​记录。有关详细信息,请参阅 http://support.microsoft.com/kb/223300

于 2015-01-28T23:41:31.290 回答