Reputation: 922
In our organization, An automated script copies all MSI's from build location to a new folder inside a shared folder each time after a successful build. There are more than 150 projects. Problem I am facing is, even though only 20 projects have been changed, automated script copies and paste all 150 MSI's to new folder. Hence I am not able to identify which project's MSI have gone through changes in recent build. If I see timestamp, It is same for all the MSI's in new folder.
Can anyone suggest any way to identify list of modified MSI's either through program or manually by using any tool? If manually, it shouldn't be one by one file comparison.
Basically, I would like to compare two shared folders to generate list of modified MSI's.
Please note : We do not have access to build location as well as there is no scope of changing existing automated script. But I can write new one.
Upvotes: 0
Views: 351
Reputation: 55601
Windows Installer packages have a Summary Information Stream that includes a Last Saved Time/Date Summary property. You can see this in explorer when you click properties on the file and go to the details page (Origin | Content created property). You can access this programmatically in any number of languages. If using C#, take a look at Windows Installer XML's (WiX) Deployment Tools Foundation (DTF) Microsoft.Deployment.WindowsInstaller interop assembly. It has a SummaryInfo class that has a constructor like such:
public SummaryInfo(
string packagePath,
bool enableWrite
)
From there it has a property:
public DateTime LastSaveTime { get; set; }
Upvotes: 1