2017-06-17 80 views
0

我想转换使用InstallShield 2015 LE安装程序的旧版Visual FoxPro 9应用程序,以便我们可以使用Windows应用商店进行部署。如果我让singleImage安装转换它喷出大量的警告:在转换Installshield LE安装程序应用程序时警告'W_COM_DARWIN_INSTALLATION_NOT_SUPPORTED':COM

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

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

回答

0

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

  1. 打开注册表编辑器(如adminisrator)
  2. 选择HKEY_LOCAL_MAHCHINE节点
  3. 选择File | Load Hive
  4. 导航和您的APPX packagefiles文件夹
  5. 名称节点APPX_ROOT
  6. 导出APPX_ROOT选择Registry.dat文件节点到文件APPX_ROOT.reg
  7. 在文本编辑器(具有良好的全局查找/替换功能,如记事本++)中打开APPX_ROOT.reg文件
  8. 搜索文本hex(7)。这将跳转到您需要替换的第一个值。它应加上前缀"InprocServer32"=
  9. 复制regkey(默认)值的@的值(上面的行)。
  10. 突出显示以'hex(7)'开头并以十六进制数字结尾的InprocServer32的内容。
  11. 如果使用Notepad ++,请按CTRL + H。 FIND字段应该是选定的十六进制值。将@值粘贴到替换字段中。做一个全球替换来节省时间。所以,你应该结束了,看起来像这样的台词:直到所有hex(7)情况下被替换
    @="[{AppVPackageRoot}]\\filename.dll" 
    "InprocServer32"="[{AppVPackageRoot}]\\filename.dll" 
    
  12. 重复步骤8至11。
  13. 保存APPX_ROOT.reg文件
  14. 合并的APPX_ROOT.reg文件重新导入注册表(右键单击APPX_ROOT.reg并选择Merge命令或使用注册表编辑器)
  15. 在注册表编辑器
  16. 选择File|Unload Hive选择APPX_ROOT节点。选择是来卸载注册表文件。
  17. 关闭注册表编辑器

这使得桌面大桥正确定位和实例化COM对象。使用更新的Registry.dat构建您的APPX包。

相关问题