使用 Visual Studio Installer 项目构建了一个 MSI。生成的 MSI 是几年前在 Windows 7 上开发的,并且在那里运行良好。
有一个合并模块(MSM),它应该将 OCX 转储到 32 位系统文件夹(通常是C:\Windows\SysWOW64
)并在其中注册HKEY_CLASSES_ROOT
。
当我在 Windows 10 上运行安装程序(以本地管理员组中的用户身份)时,它会将 OCX 文件添加到系统文件夹,但注册失败且没有任何提示(COM 组件只是不是当我稍后检查时,它会出现在注册表中。)
我尝试使用管理员命令提示符运行 MSI msiexec /i
,但没有完成注册。
使其工作的唯一方法是,从管理员命令提示符中,使用 手动注册 OCX 文件regsvr32
。
有什么见解吗?我需要以某种方式更改 MSI 吗?或者以不同的方式运行它?
答案1
请按照以下步骤操作:
- 不要尝试通过普通用户安装 MSI(根据设计,它不应该起作用)
- 根据您制作 MSI 文件的方式,在您的 MSI 中添加 regsrv。
- 以兼容模式运行。
- 查看创建该文件的 msi 安装程序版本(它可能与 Win10 不兼容)
- 他们对 MSI 文件的处理方式做了一些改变,得到了 orcahttps://msdn.microsoft.com/en-us/library/windows/desktop/aa370557(v=vs.85).aspx并运行测试来查看问题出在哪里,它有一个针对 MSI 文件的测试套件并突出显示问题(红色)。
- 如果其他方法都失败了,请查看 Windows 10 SDKhttps://msdn.microsoft.com/en-us/library/windows/desktop/aa372834(v=vs.85).aspx。