2010-02-24 127 views
2

我一直在遇到一个问题,即我正在使用我的应用程序分发的COM DLL无法注册,因为atl.dll未在计算机上注册。COM部署依赖关系

快速解决方法是在dll上运行regsvr32,但我想要一点清洁剂。

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

我目前对我的msi安装程序有一个C#自定义操作,所以我可能会添加逻辑来执行任务。

在此先感谢。

回答

2

您需要在安装程序中包含正确的Merge Module。这些将被安装到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
+0

被发现,是正是我需要的。谢谢。 – 2010-02-25 15:30:11

+0

它确实帮助我。谢谢。 – 2011-11-02 10:42:16