为什么使用MSI安装程序安装的应用程序将从Windows中消失 [英] Why app installed using MSI installer would disappear from Windows

查看:117
本文介绍了为什么使用MSI安装程序安装的应用程序将从Windows中消失的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

We made some changes to the installation and updating process of our Windows app recently, and some users are now complaining that Windows sometimes automatically deletes the main application .exe file.

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

It usually occurs after users update app using built-in web update feature. The feature is implemented using .msi built in Advanced Installer tool.

我们正在努力找出导致此问题的原因,并且还没有找到一致地重现该问题的方法(尽管我们也看到了发生此问题的方法).

We are struggling to figure out what is causing this, and haven't found a way to consistently reproduce the issue (though we've seen it happen as well).

  • 我们应用程序的主要安装程序现在是标准的.msi,它成为 Windows安装系统的一部分,并且可以由组策略进行本地管理和其他系统功能,例如回滚或版本.在没有此问题的早期版本中,我们的安装程序是使用 SetupBuilder工具构建的.exe.

  • The main installer for our application is now a standard .msi, which becomes a part of the Windows installation system and is natively manageable by Group Policy and other system features, such as rollback or versions. In previous versions that did not have this problem, our installer was a .exe built with the SetupBuilder tool.

我们在应用程序内部引入了重新设计的Web更新程序功能(以在应用程序内更新为新版本).它与安装时使用的主要交付项使用相同的.msi.从我们的服务器以.exe的形式下载.msi,然后提取 MSI 并启动它. MSI ,然后更新我们安装中的文件.这些.exe.msi是使用高级安装程序工具构建的,该工具为开发人员提供了这种Web更新功能.在没有此问题的早期版本中,我们的Web更新功能是使用 SetupBuilder工具开发的,该工具提供了自定义Web更新文件-.exe Web更新程序,可将许多包含补丁程序的Web更新文件下载到我们的应用程序.

We introduced the redesigned web updater feature inside the app (to update to new versions within the app). It uses the same .msi as the main deliverable as for installation. .msi is downloaded from our server in a form of .exe which is then extracts MSI and starts it. MSI then updates file in our installation. These .exe and .msi is built with Advanced Installer tool which provides such a web update feature to developers. In previous versions that did not have this problem, our web update feature was developed with SetupBuilder tool which provided a custom web update files - .exe web updater that downloads a number of web update files containing patch to our app.

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

The goal of a transition to the standard .msi installer was to make it easy for our clients to deploy the app in organizations - say, mass deploy using group policies and other similar tools.

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

Has anyone else experienced a problem like this? Any ideas on how to troubleshoot and try to reproduce?

推荐答案

理论 :在执行其他操作之前: 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? (文件丢失).请先检查.告诉他们卸载现有版本,然后安装新版本-这是最简单的方法.并不总是足够的(可能会出现一些难以理解的问题).

Theory: Before doing anything else: 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? This can cause a well-known upgrade problem along the lines of what you explain (file missing). Please check first. Tell them to uninstall the existing version and then install the new one - that is the simplest way. Not always enough (some obscure problems possible).

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

Mismatched component GUIDs could cause missing files after upgrade, as could file version downgrade scenarios and various other technicalities. You could try to install to a new default location on disk to avoid these problems. The reason this can work is very technical and hard to explain tersely. Essentially you de-couple yourself from "the sins of the past". It is generally enough to change the name of the file in question: for example MyApp.exe to MyAppNew.exe or maybe add the major version: MyApp5.exe, but maybe try the folder change first ProgramFiles\MyCompany\MyApp => ProgramFiles\MyCompany\MyApp5.

如何配置升级?查看" 升级 ",已选择的内容:" Uninstall old version first and then install new version "或" Install new version first and then uninstall old version ".

How do you configure your upgrade? View "Upgrades", what is selected: "Uninstall old version first and then install new version" or "Install new version first and then uninstall old version".

博客条目: :

Blog Entry:: Why Windows Installer removes files during a major upgrade if they go backwards in version numbers (might be of help).


部署调试 :对于MSI的开放式调试和部署问题,通常显然需要收集intel,这意味着需要进行日志记录和系统检查.


Deployment Debugging: For open ended debugging of MSI and deployment problems in general one obviously needs to gather intel and that means logging and system inspection.

记录 :首先尝试为发生此问题的系统获取正确的日志文件.在高级安装程序中,您可以勾选" 启用详细日志记录 ".在 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?

Logging: First try to get a proper log file for the systems where this problem occurs. In Advanced Installer you can tick the "Enable verbose logging" in the Install Parameters view to enable verbose logging for all package installations. This adds the MsiLogging property to the compiled MSI and every installation of the MSI will cause a MSI log file with a random name to be created in the TMP folder. View the folder, sort by date and the file should be at the top. Suggest you do this and then tell the users to send you the log files when relevant. Maybe you have this setting enabled already?

进一步的日志记录 :有多种启用日志记录的方法,您可以在此处找到说明:

Further Logging: There are many ways to enable logging, and you can find a description here: Enable installation logs for MSI installer without any command line arguments. The MsiLogging property is just one possibility.

  • To log a single MSI setup: http://www.installsite.org/pages/en/msifaq/a/1022.htm.
  • To enable global logging for all MSI operations on the machine: Please see this FAQ-entry from installsite.org, section "Globally for all setups on a machine" - for the exact procedure.
  • How to interpret an MSI Log File.

这篇关于为什么使用MSI安装程序安装的应用程序将从Windows中消失的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆