重新启动请求的日志记录

如果 InstallValidate 操作检测到正在使用的文件安装,它将显示 FilesInUse 对话框并记录以下信息。

Info 1603. The file E:\testdb\Test\CustAct1.dll is being held in use
by the following process: Name: test, Id: 137, Window Title: 'Test'.

如果安装程序检测到它即将覆盖正在使用的文件,它会记录以下信息。

Info 1603. The file E:\testdb\Test\CustAct2.dll is being held in use.

Info 1903.Scheduling reboot operation: Deleting file [filename]. Must 
reboot to complete operation.

[filename] 令牌实际上可能包含扩展名为 .rbf 的文件的路径。 在这种情况下,.rbf 文件实际上是 1603 消息记录的原始文件,该消息已重命名为 .rbf 文件。 首先使用 .rbf 扩展名重命名正在使用的文件,然后将其删除。

若要获取有关安装程序为何尝试覆盖此特定文件的详细信息,可以使用详细日志记录选项。 在调用 MsiEnableLog 时使用 INSTALLLOGMODE_VERBOSE 值,或使用 命令行选项的详细输出选项。 这会记录以下信息。

MSI (s) (D0:F0): File: E:\testdb\Test\CustAct2.dll;  Overwrite;  
REINSTALLMODE specifies all files to be overwritten

日志将包含一条消息,例如“现有文件的版本较低”或“现有文件已损坏(校验和无效)”