如果原始安装DVD不在驱动器中,则发生卸载错误 [英] Uninstall error if original install DVD is not in drive

查看:110
本文介绍了如果原始安装DVD不在驱动器中,则发生卸载错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当尝试在添加/删除程序"中删除我们的应用程序时,会弹出以下错误,并且该应用程序无法卸载:

When trying to remove our application in Add/Remove Programs, the following error pops up, and the application fails to uninstall:

错误

'mFileBagIDE.dll'不是有效的短文件名.

'mFileBagIDE.dll' is not a valid short file name.

奇怪的是,只有原始安装DVD不在驱动器中时,您才会收到此错误.如果DVD在驱动器中,则卸载可以正常进行.

The curious thing is that you only get this error if the original installation DVD is not in the drive. If the DVD is in the drive, the uninstall works perfectly.

这才是真正的关键:直到我们的应用程序已经广泛部署之后,我们才发现此错误,而且客户的情况如此,以至于他们中的许多人可能不再拥有原始DVD.这意味着下一版本的安装程序(进行Windows Installer重大升级)将失败,因为它无法首先删除先前的版本.

Here's the real kicker: we did not catch this bug until after our application was already widely deployed, and our clients' situations are such that it is likely many of them no longer have their original DVD. This means that the next version's installer (doing a windows installer major upgrade) will fail because it is unable to first remove the previous version.

所以,我的问题是双重的:

So, my question is twofold:

  • 我们做了什么来解决这个问题,以便在将来的发行版中可以避免它发生?
  • 是否可以告诉我们的下一个Windows安装程序忽略此错误并继续删除以前的版本?

我们当前的安装程序(引起问题的安装程序)是使用InstallAware生成的.我们可能会转向WiX.但是不胜感激任何平台(InstallAware,WiX,原始MSI表)中的解决方案!

Our current installer (the one that is causing problems) was generated using InstallAware. We're likely moving to WiX. But solutions in any platform (InstallAware, WiX, raw MSI tables) are appreciated!

更新:我的MSI的InstallExecuteSequenceInstallUISequence表中都有以下行,这很可能是相关的,但我不知道SRCDIREX属性是什么,或设置位置.

UPDATE: I have the following row in both the InstallExecuteSequence and InstallUISequence tables in my MSI, which may very well be relevant, but I have no idea what the SRCDIREX property is, or where it is being set.

| Action        | Condition    |
|---------------|--------------|
| ResolveSource | NOT SRCDIREX |

推荐答案

引用原始MSI的动作(标准动作或自定义动作)之一可能并非仅在安装时运行(例如,ResolveSource应调整为未安装").您也许可以通过更改相关操作条件的补丁程序(MSP文件)来解决此问题.

Probably one of the actions (either standard or custom) that references the original MSI was not conditioned to run on installation only (for example, ResolveSource should be conditioned as "Not INSTALLED"). You might be able to workaround this with a patch (an MSP file) that changes the condition on the relevant action.

这篇关于如果原始安装DVD不在驱动器中,则发生卸载错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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