首页 > 解决方案 > 为什么使用 MSI 安装程序安装的应用程序会从 Windows 中消失

问题描述

我们最近对我们的 Windows 应用程序的安装和更新过程进行了一些更改,现在一些用户抱怨 Windows 有时会自动删除主应用程序.exe文件。

它通常发生在用户使用内置的网络更新功能更新应用程序之后。该功能是使用.msi内置的高级安装工具实现的。

我们正在努力找出导致此问题的原因,并且还没有找到一种方法来始终如一地重现该问题(尽管我们也看到它发生过)。

以下是我们的安装和网络更新过程发生的变化:

过渡到标准.msi安装程序的目标是让我们的客户可以轻松地在组织中部署应用程序 - 例如,使用组策略和其他类似工具进行大规模部署。

有没有其他人遇到过这样的问题?关于如何排除故障并尝试重现的任何想法?

标签: installationwindows-installergroup-policyuninstallation

解决方案


理论:在做任何其他事情之前:The first thing I would ask the people who report the problem is if they have re-packaged your older, legacy (non-MSI) setup to be their own MSI file?这可能会导致众所周知的升级问题,如您所解释的那样(文件丢失)。请先检查。告诉他们卸载现有版本,然后安装新版本——这是最简单的方法。并不总是足够的(可能有一些晦涩的问题)。

不匹配的组件 GUID可能会导致升级后丢失文件,文件版本降级方案和各种其他技术问题也可能如此。您可以尝试安装到磁盘上的新默认位置以避免这些问题。这可以工作的原因是非常技术性的,很难简洁地解释。从本质上讲,您将自己与“过去的罪恶”脱钩。通常更改相关文件的名称就足够了:例如MyApp.exe添加MyAppNew.exe或添加主要版本:MyApp5.exe,但可能先尝试更改文件夹。ProgramFiles\MyCompany\MyApp => ProgramFiles\MyCompany\MyApp5

您如何配置升级?查看“升级”,选择什么:“ Uninstall old version first and then install new version”或“ Install new version first and then uninstall old version”。

博客条目::为什么Windows Installer 会在主要升级期间删除文件,如果它们的版本号倒退(可能有帮助)。


部署调试:对于 MSI 和部署问题的开放式调试,显然需要收集情报,这意味着日志记录和系统检查。

日志记录:首先尝试为发生此问题的系统获取正确的日志文件。在高级安装程序中,您可以勾选视图中的“启用详细日志记录Install Parameters以启用所有软件包安装的详细日志记录。这会将MsiLogging 属性添加到已编译的 MSI,并且每次安装 MSI 都会导致在 TMP 文件夹中创建具有随机名称的 MSI 日志文件。查看文件夹,按日期排序,文件应位于顶部。Suggest you do this and then tell the users to send you the log files when relevant. Maybe you have this setting enabled already?


进一步的日志记录:有很多方法可以启用日志记录,您可以在此处找到说明:启用 MSI 安装程序的安装日志,无需任何命令行参数。MsiLogging 属性只是一种可能性。


推荐阅读