在我们的组织中,每次成功构建后,自动脚本都会将所有MSI从构建位置复制到共享文件夹中的新文件夹中。有150多个项目。我面临的问题是,尽管只有20个项目被更改,但自动复制脚本并将所有150个MSI粘贴到新文件夹中。因此,我无法确定哪个项目的MSI在最近的构建中发生了变化。如果我看到时间戳,对于新文件夹中的所有MSI都是一样的。
有人能建议通过程序或使用任何工具手动识别修改后的MSI列表吗?如果是手动的,则不应该是一个接一个的文件比较。
基本上,我想比较两个共享文件夹,以生成修改MSI的列表。
请注意:我们没有访问构建位置的权限,也没有更改现有自动脚本的范围。但我可以写新的。
Windows安装程序包有一个摘要信息流,其中包括"上次保存的时间/日期摘要"属性。当您单击文件上的属性并转到详细信息页面(Origin | Content created属性)时,您可以在资源管理器中看到这一点。您可以用任意数量的语言以编程方式访问它。如果使用C#,请查看Windows Installer XML(WiX)部署工具基础(DTF)Microsoft.Deployment.WindowsInstaller互操作程序集。它有一个SummaryInfo类,它的构造函数如下:
public SummaryInfo(
string packagePath,
bool enableWrite
)
从那里它有一个属性:
public DateTime LastSaveTime { get; set; }