【问题标题】:Why does Regsvr32 work on one machine but not the other为什么 Regsvr32 可以在一台机器上工作,而不能在另一台机器上工作
【发布时间】:2018-09-25 15:50:04
【问题描述】:

当我在我的机器上将 dll 注册为管理员时,它工作正常:

Regsvr32 C:\nameofdll.dll

但是,当我在另一台机器上运行它时,它会失败。 这是为什么呢?

【问题讨论】:

  • 该错误可能是由于机器的体系结构引起的,可能其中一个在x86上运行,另一个在x64下运行。我会向您推荐这篇文章以尝试解决您的问题:stackoverflow.com/questions/4897685/…

标签: wix windows-installer installshield regsvr32 advanced-installer


【解决方案1】:

错误代码Error codes can be looked up using one of these methods


Regsvr32.exe - 需要管理员权限:据我所知,自我注册需要管理员权限,因为它为每台机器注册 DLL - 或者换句话说注册表的 HKLM / HKCR 部分(HKCRHKLM 的一部分的视图HKCU 部分的合并 - 换句话说,它是来自 HKCU 的“emergent view”和 HKLM)。现在我看到this answer 似乎表明有办法为每个用户注册 COM 服务器?它适用于我使用 this method 的测试 OCX 文件。我没有尝试the custom registration EXE from codeproject

MSI - 每个用户的 COM 注册:另一方面,Windows Installer 能够为每个用户安装 COM 服务器,用于安装每个用户的设置。由于多种原因(可维护性、升级、修补、各种限制),按用户设置不好,但这是另一回事。如果您enable Installshield's COM Extract On Build as I showed in another answer,COM 数据将添加到您的 MSI,以确保 COM 服务器可以按用户注册 - 如果安装程序是按用户安装的,或者如果安装程序是按机器安装的,则按机器注册 -机器。 这是使用 Windows Installer 注册 COM 文件的标准方法

Bitness:可能是其他问题原因,例如提到的 COM 服务器的“bitness”。我遇到过很少的 x64 COM 服务器,但是例如使用 WiX 处理它们是有问题的。据我所知,WiX 3.11 版本不支持 x64 COM 服务器进行提取。 Installshield 中可能存在类似问题 - 我不知道。

Support Page:在 64 位版本的 Windows 操作系统上,有两个版本的 Regsv32.exe 文件:

  • 64位版本是%systemroot%\System32\regsvr32.exe
  • 32位版本是%systemroot%\SysWoW64\regsvr32.exe

缺少依赖项:如果相关文件缺少依赖项,自行注册也会失败。您可以使用诸如dependency walker 之类的工具进行检查,也可以使用procmon 或any number of scanner tools 进行监控(快速浏览一下)。请注意,您也可能缺少 COM 服务器的“语言 dll”。例如:MyApp-English.dll。此类文件应位于您的主 COM 服务器文件 MyApp.dllMyApp.ocx 旁边,以便注册正常工作。

奇怪:可以看到许多其他问题。从licensing issuesCOM interoperability 与.NET (regasm.exe)、来自奇怪的security policiessecurity software interference 的干扰 - 防病毒等......到任意数量的other specific and rare factors

警告:我看到自注册在自注册过程中执行非法操作并更改核心系统值 - 没有任何警告或解释。因此推荐给avoid self-registration during deployment whenever possible

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-23
    • 2017-08-07
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多