0

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

OnCommit()安装应用程序后,我尝试Commit()使用File.Delete(). 但到目前为止还没有运气。

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

4

1 回答 1

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

}
于 2013-07-26T15:25:02.160 回答