我遇到了一个问题,即我与我的应用程序一起分发的 COM dll 无法注册,因为 atl.dll 未在机器上注册。
快速修复是在 dll 上运行 regsvr32,但我想要一些更清洁的东西。
我在部署方面没有太多经验,我想知道是否有一种方法可以确定 atl.dll 是否已在机器上注册,如果没有,我可以从代码中注册它。
我目前有一个用于我的 msi 安装程序的 C# 自定义操作,因此我可以在那里添加逻辑来执行任务。
提前致谢。
我遇到了一个问题,即我与我的应用程序一起分发的 COM dll 无法注册,因为 atl.dll 未在机器上注册。
快速修复是在 dll 上运行 regsvr32,但我想要一些更清洁的东西。
我在部署方面没有太多经验,我想知道是否有一种方法可以确定 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