我们最近对Windows应用程序的安装和更新过程进行了一些更改,一些用户现在抱怨Windows有时会自动删除主应用程序.exe
文件。
通常在用户使用内置的网络更新功能更新应用后发生。该功能是使用A 高级安装程序工具中内置的.msi
实现的。
我们正在努力找出导致此问题的原因,并且还没有找到一致地重现该问题的方法(尽管我们也看到了发生这种情况的方法)。
我们应用程序的主要安装程序现在是标准的.msi
,它已成为 Windows安装系统的一部分,并且可以通过组策略进行本地管理和其他系统功能,例如回滚或版本。在没有此问题的早期版本中,我们的安装程序是使用 SetupBuilder工具构建的.exe
。
我们在应用程序内部引入了重新设计的Web更新程序功能(以在应用程序内更新为新版本)。它使用与主要交付内容相同的.msi
进行安装。 .msi
以.exe
的形式从我们的服务器下载,然后提取 MSI 并启动它。 MSI ,然后更新我们安装中的文件。这些.exe
和.msi
是使用高级安装程序工具构建的,该工具为开发人员提供了这种Web更新功能。在没有此问题的早期版本中,我们的网络更新功能是使用 SetupBuilder工具开发的,该工具提供了自定义的网络更新文件-.exe
网络更新程序,可下载许多包含以下内容的网络更新文件:修补程序。
过渡到标准.msi
安装程序的目的是使我们的客户能够轻松地在组织中部署该应用程序-例如,使用组策略和其他类似工具进行大规模部署。
还有其他人遇到过这样的问题吗?关于如何解决问题并尝试重现的任何想法?
答案 0 :(得分:0)
理论 :在执行其他操作之前:
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?
这可能会导致众所周知的升级问题,具体取决于您解释(文件丢失)。请先检查。告诉他们卸载现有版本,然后安装新版本-这是最简单的方法。并不总是足够的(可能会出现一些难以理解的问题)。Mismatched component GUIDs可能导致升级后丢失文件,文件版本降级方案和其他各种技术也可能导致丢失。您可以尝试将其安装到磁盘上的新默认位置,以避免出现这些问题。可以工作的原因是非常技术性的,很难简单解释。本质上,您使自己与“ 过去的罪过”脱钩。通常,将相关文件的名称更改为足够:例如,将
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
>”。博客条目: :Why Windows Installer removes files during a major upgrade if they go backwards in version numbers(可能会有帮助)。
部署调试 :对于MSI的开放式调试和部署问题,通常显然需要收集intel,这意味着需要进行日志记录和系统检查。
记录 :首先尝试为发生此问题的系统获取正确的日志文件。在高级安装程序中,您可以在 Install Parameters
视图中勾选“ 启用详细日志记录 ”以启用所有软件包安装的详细日志记录。这会将MsiLogging property添加到已编译的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?
进一步日志记录 :启用日志记录的方法有很多,您可以在此处找到说明:Enable installation logs for MSI installer without any command line arguments。 MsiLogging属性只是一种可能性。