Windows安装程序会安装旧文件

时间:2014-06-10 13:57:46

标签: windows-installer msiexec

我使用Visual Studio 2010创建了一个msi文件。我使用msiexec / a从msi文件中提取所有文件,并验证它是否包含一个名为version.config的文本文件。我打开这个文件,然后验证它是否有最新版本。 我在Windows-2003计算机上成功安装了msi文件,然后查看已安装的version.config的内容。令我惊讶的是,旧的version.config文件已经安装!使用msiexec / a,我在测试计算机上再次验证msi文件是否包含最新版本的version.config文件。我验证卸载了应用程序,删除了所有已安装的目录,然后重新安装了应用程序。再次,安装旧的version.config文件!似乎Windows-Installer已经在某个地方兑现了旧的version.config文件! 这是非常糟糕的,因为其他文件的旧版本也可能已经安装,没有我注意到它! 为什么会发生这种情况,我该怎么办,以便msi文件安装最新的文件版本,而不是某些缓存版本?

我添加了详细日志记录,并记录了有关version.config文件的以下条目:

MSI(14:E4)[09:18:57:594]:执行op:ComponentRegister(ComponentId = {B38411CB-AEFB-CD55-F7F7-71CD83323CBD},KeyPath = C:\ Unisystems \ Runtime \ Version.config,状态= 3,磁盘= 1,SharedDllRefCount = 0,BinaryType = 0) 1:{700E649A-3C70-4C73-965E-2EE7DA72D74C} 2:{B38411CB-AEFB-CD55-F7F7-71CD83323CBD} 3:C:\ Unisystems \ Runtime \ Version.config

MSI(s)(14:E4)[09:19:01:875]:执行op:FileCopy(SourceName = VERSIO~1.CON | Version.config,SourceCabKey = _26B563DCBD184EACA09AC6F37F1FB178,DestName = Version.config,Attributes = 512,文件大小157 =,PerTick = 32768,VerifyMedia = 1 ,,,,, CheckCRC = 0 ,,, INSTALLMODE = 58982400 ,,,,,,,) MSI(s)(14:E4)[09:19:01:875]:文件:C:\ Unisystems \ Runtime \ Version.config;待安装;不会补丁;没有现有文件 MSI(s)(14:E4)[09:19:01:875]:压缩文件'_26B563DCBD184EACA09AC6F37F1FB178'的来源 InstallFiles:File:Version.config,Directory:C:\ Unisystems \ Runtime \,Size:157 MSI(s)(14:E4)[09:19:01:875]:注意:1:2318 2:C:\ Unisystems \ Runtime \ Version.config

这些条目在我看来没问题。日志的大小是3MB,我可以将它上传到某个地方。

2 个答案:

答案 0 :(得分:0)

您需要发布安装程序日志以进行调试。 MSI不缓存并随机安装旧文件。我的猜测是你有一个在安装过程中执行的自定义操作,它在管理员安装期间没有执行,并且会影响结果。

答案 1 :(得分:0)

谢谢,在更好地调查安装项目后,我发现了一个修改此文件的自定义操作。请原谅我责备Windows安装程序。