警告'W_COM_DARWIN_INSTALLATION_NOT_SUPPORTED':转换Installshield LE安装程序应用时的COM

时间:2017-06-17 01:44:10

标签: installshield-le makeappx

我正在尝试转换使用InstallShield 2015 LE安装程序的旧版Visual FoxPro 9应用程序,以便我们可以使用Windows应用商店进行部署。如果我让singleImage安装程序被转换它会发出很多警告:

“DesktopAppConverter:warning'W_COM_DARWIN_INSTALLATION_NOT_SUPPORTED':COM:打包的应用程序不支持Darwin安装。 CLSID {C27CCE3B-8596-11D1-B16A-00C0F0283628}的InprocServer32子项的InprocServer32值应替换为默认(未命名)值, 指定包中服务器的路径。否则,尝试创建此类将失败。“

听起来我想在某处禁用这个DARWIN功能,但有关此信息的信息非常非常稀疏。似乎这些警告是在某些OCX(是的,我知道)控件上给出的,但也是来自设置中包含的合并模块的组件。有谁知道如何摆脱这些警告?它们目前阻止转换器运行,但是一些手动makeAppX步骤似乎允许我生成AppX,但是当程序启动时,每次进入具有这些ocx控件的窗口时都会有一个快速弹出窗口。

1 个答案:

答案 0 :(得分:0)

我也遇到过这个问题。我最近用许多DLL和OCX库转换了一个VB6应用程序。这是一个繁琐的过程,具体取决于您拥有的COM对象的数量。以下是步骤。

  1. 打开RegEdit(作为管理员)
  2. 选择HKEY_LOCAL_MAHCHINE节点
  3. 选择File | Load Hive
  4. 导航并选择APPX Registry.dat文件夹
  5. 中的packagefiles文件
  6. 将节点命名为APPX_ROOT
  7. APPX_ROOT节点导出到名为APPX_ROOT.reg
  8. 的文件
  9. 在文本编辑器中打开APPX_ROOT.reg文件(具有良好的全局查找/替换功能,如记事本++)
  10. 搜索文字hex(7)。这将跳转到您需要替换的第一个值。它应该以{{1​​}}
  11. 作为前缀
  12. 复制regkey的"InprocServer32"=(默认值)值(上面一行)。
  13. 突出显示InprocServer32的内容,以'hex(7)'开头,以十六进制数字结尾。
  14. 如果使用Notepad ++,请按CTRL + H. FIND字段应为选定的十六进制值。将@值粘贴到“替换”字段中。做全球替换以节省时间。所以你应该得到如下所示的行:
    @
  15. 重复步骤8到11,直到所有@="[{AppVPackageRoot}]\\filename.dll" "InprocServer32"="[{AppVPackageRoot}]\\filename.dll" 个实例都被替换。
  16. 保存hex(7)文件
  17. APPX_ROOT.reg文件合并回注册表(右键单击APPX_ROOT.reg并选择APPX_ROOT.reg命令或使用regedit)
  18. 在regedit中选择Merge节点
  19. 选择APPX_ROOT。选择“是”以卸载注册表文件。
  20. 关闭regedit
  21. 这允许Desktop Bridge正确定位和实例化COM对象。使用更新的Registry.dat构建您的APPX包。