-
22-09-2019 - |
题
我一直在遇到一个问题,即我正在使用我的应用程序分发的com dll由于ATL.dll未在计算机上注册而无法注册。
快速修复是在DLL上将Run Regsvr32放在dll上,但是我想要一些更干净的东西。
我在部署方面没有太多经验,我想知道是否有一种方法可以确定ATL.dll是否在计算机上注册,如果没有,我可以从代码中注册它。
我目前为我的MSI安装程序有一个C#自定义操作,因此我可以在此处添加逻辑来执行任务。
提前致谢。
解决方案
您需要包括正确的 合并模块 与您的安装程序。这些将安装到 C:\Program Files\Common Files\Merge Modules
. 。如果您找不到所需的文件,则可能没有在任何一个中安装“重新分布组件”功能 Windows SDK 和/或Visual Studio(默认情况下,这两者都没有选择)
ATL90.DLL
可以找到Microsoft_VC90_ATL_x86.msm
ATL80.DLL
可以找到Microsoft_VC80_ATL_x86.msm
不隶属于 StackOverflow