从MSI中排除.InstallState文件
本文关键字:InstallState 文件 排除 MSI | 更新日期: 2023-09-27 18:24:59
我在MSI项目中使用Installer Class
,它预成型了一些自定义操作。由于这个类,每次我安装MSI时,它都会将.InstallState
文件放入安装文件夹中。我的项目中有另一个模块,它使用现有应用程序的产品代码来卸载Silent mode
中的现有应用程序。但它失败了,因为它无法删除.InstallState文件。但如果我手动卸载,它会删除文件。
安装应用程序后,我尝试使用File.Delete()
在安装程序类的OnCommit()
或Commit()
方法中删除此文件。但到目前为止没有运气。
有没有办法将此文件从MSI中排除?
我找到了一个解决方法,在安装过程中,我正在执行File.Delete()
。我正在删除安装程序类的OnComitting()
中的文件。
protected override void OnCommitting(System.Collections.IDictionary savedState)
{
string installedPath = string.Empty;
installedPath = Context.Parameters["assemblypath"];
installedPath = installedPath.Substring(0, installedPath.LastIndexOf(''''));
File.Delete(Path.Combine(installedPath, "InstallerHelper.InstallState"));
base.OnCommitting(savedState);
}