com - Wix 64 位应用程序中的 32 位 COM
问题描述
我正在使用 Wix 为应用程序创建安装程序,虽然它是 64 位,但使用一些较旧的 32 位 COM。我发现我必须将组件标记为 Win64="no" 才能使该 COM 的注册反映在 Wow6432Node 中。
但是,如果我这样做,我将无法再将该组件安装在与我的应用程序的其余部分相同的目录中,因为我在构建时收到以下错误消息:
Light0204:ICE80:这个 32BitComponent MyCom.dll 使用 64BitDirectory APPLICATIONFOLDER
我不想将我的 COM 安装在 32 位文件夹中;我宁愿把我的应用程序放在一起。但是,如果我删除组件上的 Win64="no" 标记,则该组件无法正确注册并且我无法使用它。那么,我可以将我的 32 位 COM 与我的 64 位应用程序的其余部分一起安装,并且仍然让 Wix 进行注册而不诉诸自我注册吗?
解决方案
处理此问题的典型方法是创建 32 位 MSI 和 64 位 MSI,然后使用引导程序(例如 WiX Burn)封装它们。
我倾向于主要进行 .NET 开发,通常我只会为 32 位而不是 AnyCPU 编译应用程序。具有 64 位进程的 AFAIK 使用 32 位 COM 服务器很棘手。
推荐阅读
- google-cloud-platform - 如何使用 OpenVPN 在 GCP 上配置“客户端到站点”VPN?
- excel - Excel条件格式百分位数范围
- android - Android 运行时异常
- angularjs - 加法解释为字符串 AngularJS
- javascript - 如何在 reactJs 中将字符串数据从后端转换为简单文本。所以,像这样的html标签
可以生效 - android - 导航架构组件 - 登录按钮 - createNavigateOnClickListener
- google-earth - Linux Mint 上的 Google 地球问题
- api - 如何将原始数据传递给发布请求
- javascript - 谷歌气泡图 - 表没有列
- express - 延迟 Multer 文件上传