0

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

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

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

4

1 回答 1

0

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

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

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

于 2017-09-21T01:04:39.647 回答