我使用 wix 进行了多项设置,通过设置以下属性来抑制所有“正在使用的文件”和“请立即/稍后重新启动应用程序/计算机”对话框:
<Property Id="REINSTALLMODE" Value="amus" />
<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable" />
<Property Id="REBOOT" Value="Suppress" />
但是一个带有名为“KernelBase.dll”的 dll 的产品在卸载时仍然提示使用文件对话框,列出奇怪的标准 Windows 应用程序,如 cmd、paint、notepad ......我可以按“忽略”或“再试一次”继续。卸载成功,没有留下任何文件。
问题似乎是我们在C:\Program Files (x86)\ProductName\中的KernelBase.dll与来自C:\Windows\SysWOW64\de-DE\的KernelBase.dll.mui混淆了。重命名我们的 dll 后,文件使用对话框不再出现。
我不敢相信 dll 是由它们的名字引用的。我不太了解 dll 注册,但完整路径似乎是 dll 的通用 UID,那么 Windows Installer 指的是哪个搞砸的列表?一个人不知道任何 Windows dll 的任何名称,所以我想如果有任何冲突,应该有一些东西阻止我构建(或至少使用)这样的 dll。
所以我的问题是:Windows Installer 在这里做什么?我能做些什么来取悦它,这样它就不会混淆这两个 dll。重命名我们自己的dll应该是紧急解决方案。
微星版本:5.0(.7601.17807)
操作系统:Windows 7 Professional 64bit
提前致谢。