在设置 Windows 7 Embedded 系统时,我需要运行几个注册 DLL 的旧安装程序。这些安装程序都失败了——有些出现错误,有些则直接退出而没有执行任何操作。一个安装程序报告注册 DLL 失败(即使以管理员身份登录)。尝试使用 regsvr32 手动注册 DLL 时报告收到错误 0x80070005 E_ACCESSDENIED。
更奇怪的是,其中一个安装程序非常新,以普通用户身份运行时会弹出 UAC 提示 - 然后继续安装,没有任何问题。以管理员身份运行时,同一个安装程序在注册 DLL 时失败。
我猜想是管理员帐户出了问题,但我没有足够的 Win7 经验来猜测是什么问题(而且没有 explorer shell,如果不知道自己到底在寻找什么,就很难进行探索)。此后,我不需要管理员帐户来做任何事情,因此我很高兴找到一种方法来强制旧安装程序以 UAC 提升的权限运行。
答案1
好吧,首先尝试完全关闭UAC
(并重新启动)以运行安装程序,如果问题是由引起的,它将解决问题UAC
。
另一种可能性是这些旧的安装程序和/或 .dll
与 Windows 7 根本不(完全)兼容。在这种情况下,我建议不要尝试强制安装它...因为如果您确实设法安装了它,您将不得不在不完全兼容的操作系统上支持不完全兼容的程序,直到您去世后 6 个月。
听听那些有经验的人的意见,最好是直接告诉nope, not compatible
老板,要么购买一些可以在现有系统上运行的产品,要么建立一个可以运行此应用程序的旧操作系统,然后使用它来安装它。(当然,“购买新东西”是更好的选择。)