我有一个使用一些第三方DLL的项目,我正在开发用于部署的安装项目。从Visual Studio 2005中运行(调试)时程序运行正常,但在“安装”时不运行。
DLL正确地复制到应用程序文件夹。我的理解是安装程序没有注册DLL。 “由于以下错误,使用CLSID { GUID }检索组件的COM类工厂失败:80040154”
在安装项目中,每个DLL程序集都将“Register”属性设置为“vsdraCOM”,我认为这应该触发注册。
编辑:看起来它们都是我的应用程序的.NET程序集,注册应该不是问题。标题改变以反映这一点。
这似乎应该是非常基本的,但我不知道我应该做什么?
答案 0 :(得分:0)
使用Dependency Walker(http://dependencywalker.com/)检查DLL可能尝试加载的其他内容。
然后尝试在HKCR \ CLSID下的注册表中搜索您的GUID,其中InprocServer32应包含成功注册的DLL的路径。
答案 1 :(得分:0)
如果这些是自我注册的普通COM对象(不是.NET程序集)(即您可以使用regsvr32注册它们),那么您希望vsdraCOMSelfReg
不是vsdraCOM
。 vsdraCOM
用于为COM互操作注册.NET程序集。
是的,它根本不直观。
答案 2 :(得分:0)
正在使用的DLL包含一个SDK包,其中包含来自供应商的安装程序中的文档,代码示例等。我移动到新计算机时传输了所有松散的文件,但没有发现我实际上没有在新计算机上运行安装程序。
安装SDK必须进行任何需要的注册 - 我的应用程序现在可以正常运行。我可以通过运行两个安装程序来安装在目标计算机上,这是可以接受的。