我使用Visual Studio 2010創建了一個msi文件。我使用msiexec/a從msi文件中提取所有文件,然後驗證它是否包含名爲version.config的文本文件。我打開這個文件,並驗證它有最新版本。 我在Windows-2003計算機上成功安裝了msi文件,並查看了安裝的version.config的內容。令我驚訝的是,舊的version.config文件已經安裝!使用msiexec/a,我再次在測試計算機上驗證msi文件是否包含最新版本的version.config文件。我卸載了應用程序,我驗證了所有已安裝的目錄都已刪除,然後重新安裝應用程序。再次,舊的version.config文件已安裝!看來,Windows安裝程序有一個地方舊版本的.config文件! 這是非常糟糕的,因爲其他文件的舊版本可能已經安裝了,而我沒有注意到它! 爲什麼會發生這種情況,我該怎麼做,以便msi文件安裝最新的文件版本,而不是某些緩存版本?Windows安裝程序安裝舊文件
我添加詳細日誌記錄和以下輸入關於version.config文件中記錄:
MSI(一個或多個)(14:E4)[09:18:57:594]:執行運算:ComponentRegister(COMPONENTID = {B38411CB-AEFB-CD55-F7F7-71CD83323CBD},KeyPath = C:\ Unisystems \ Runtime \ Version.config,State = 3,Disk = 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,Attrib utes = 512,FileSize = 157,PerTick = 32768,VerifyMedia = 1 ,,,,, CheckCRC = 0 ,,, InstallMode = 58982400 ,,,,,,,) MSI(s:14:E4)[09 :19:01:875]:文件:C:\ Unisystems \ Runtime \ Version.config;待安裝;不會修補;文件'_26B563DCBD184EACA09AC6F37F1FB178'的源文件已被壓縮 InstallFiles:File:Version.config,目錄:C:\ Unisystems \ Runtime \,大小:157 微星(14:E4)[09:19:01:875]:注意:1:2318 2:C:\ Unisystems \ Runtime \ Version.config
這些條目對我來說似乎還行。日誌的大小是3MB,我可以在某處上傳它。
您還需要發佈有關確切場景的更多信息。事實上,現有的文本文件意味着您可能實際上正在嘗試升級,並且需要使用VS調用RemovePreviousVersions的內容。人們重建VS安裝文件並重新運行它們並不罕見,請參閱修復/刪除並假定修復將使用MSI中的新文件更新產品 - 它不會! – PhilDW