我在我的MSI项目中使用Installer Class
,它会执行一些自定义操作。由于这个类我每次安装MSI时都会将.InstallState
文件放入安装文件夹。我的项目中有另一个模块,它使用现有应用程序的产品代码在Silent mode
中执行现有应用程序的卸载。但它失败了,因为它无法删除.InstallState文件。但如果我手动卸载它删除文件。
安装应用程序后,我尝试使用OnCommit()
在安装程序类的Commit()
或File.Delete()
方法中删除此文件。但到目前为止还没有运气。
有没有办法从MSI中排除这个文件?
答案 0 :(得分:0)
我找到了解决方法,在安装过程中我正在做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);
}