2

我遇到了一个问题,即我与我的应用程序一起分发的 COM dll 无法注册,因为 atl.dll 未在机器上注册。

快速修复是在 dll 上运行 regsvr32,但我想要一些更清洁的东西。

我在部署方面没有太多经验,我想知道是否有一种方法可以确定 atl.dll 是否已在机器上注册,如果没有,我可以从代码中注册它。

我目前有一个用于我的 msi 安装程序的 C# 自定义操作,因此我可以在那里添加逻辑来执行任务。

提前致谢。

4

1 回答 1

2

您需要在安装程序中包含正确的合并模块。这些将安装到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
于 2010-02-24T21:47:25.907 回答