不合理数量的"正在使用的文件"在WiX安装过程中

时间:2016-07-24 09:51:05

标签: wix windows-installer installer

我使用WiX为应用程序构建安装程序(MSI),该工作正常,除了这些不合理数量的应用程序正在使用需要通过此设置更新的文件":

Excessive Files In Use during Installation

某些用户有时会遇到这种情况,我不太明白为什么会这样,以及如何解决这个问题。

我没有看到我的应用程序的安装过程与所有这些应用程序冲突的原因,而且我不确定如何进一步调查它。

我的应用程序是一个独立的桌面应用程序 - 不是任何附加组件,也不是与列出的任何应用程序交互或依赖的东西。

我的安装过程的步骤:

  1. 检查.Net framework 4.0 CP是否可用(如果没有则退出)。
  2. 在Program Files [Company] [Product]下安装应用程序(包括我的exe,我的DLL,我捆绑的2个第三方DLL)
  3. 如果需要,安装MS Visual C ++ Runtime Redist 14.0
  4. 为应用程序添加“开始”菜单项(启动和卸载快捷方式)
  5. 用于创建计划任务的自定义操作,该任务在用户登录时以管理员身份启动我的应用程序(应用程序在托盘中以管理员身份运行)。
  6. 安装完成后启动应用程序的自定义操作(如果在上一个对话框中选中了复选框)。
  7. 有关如何解决此问题或至少调查导致此问题的建议,我们将不胜感激: - )

1 个答案:

答案 0 :(得分:2)

仅在运行安装程序且桌面应用程序已在运行时才会发生吗?

要进一步调查,最好看的是您的日志文件。日志文件将包含有关其他进程持有的文件的详细信息,如:

Info 1603. The file C:\...\abc.exe is being held in use by the following process: Name: xyz, Id: 19010, Window Title: 'xyz'. Close that application and retry.
Info 1603. The file C:\...\abc.dll is being held in use by the following process: Name: xyz123, Id: 9243, Window Title: 'xyz123'. Close that application and retry.

确定其他进程正在使用的实际文件后,它将帮助您找出根本原因。基本上,INSTALLVALIDATE Windows安装程序操作确定活动进程当前是否正在使用一个或多个要覆盖或删除的文件。如果任何文件在File costing期间被任何进程打开执行或修改时被覆盖或删除,则会将条目添加到内部FilesInUse表中。 FilesInUse表包含文件名和完整路径的列。执行InstallValidate操作时,安装程​​序将在FilesInUse表中查询条目,并使用该文件确定进程的名称。 InstallValidate操作为ListBox用户界面表添加一条记录,用于此查询标识的每个唯一进程。