从MSI中排除.InstallState文件

时间:2013-07-26 13:08:08

标签: c# windows-installer installation

我在我的MSI项目中使用Installer Class,它会执行一些自定义操作。由于这个类我每次安装MSI时都会将.InstallState文件放入安装文件夹。我的项目中有另一个模块,它使用现有应用程序的产品代码在Silent mode中执行现有应用程序的卸载。但它失败了,因为它无法删除.InstallState文件。但如果我手动卸载它删除文件。

安装应用程序后,我尝试使用OnCommit()在安装程序类的Commit()File.Delete()方法中删除此文件。但到目前为止还没有运气。

有没有办法从MSI中排除这个文件?

1 个答案:

答案 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);

}