VS2015安装项目错误80040154类未注册

时间:2017-05-29 15:40:51

标签: dll visual-studio-2015 windows-10 64-bit setup-project

我公司正在开发一个使用BOSCH Video SDK的应用程序。我已经在我的安装项目中包含了所需的DLL文件,并且我相信他们在我的项目安装时已经注册了,但我得到了#34; Class未注册"运行时错误..

我怀疑我的问题来自这个应用程序是在x64中编译并使用BOSCH Video SDK中的64位DLL的事实。这是故意的,我们绝对希望这安装并以64位模式运行。

确切的错误消息是"由于以下错误,使用CLSID {D12FF18F-AFC2-4E6E-9FEB-8FC4B57FFC93}恢复组件的COM类工厂失败:80040154未注册类(HRESULT异常:0x80040154( REGDB_E_CLASSNOTREG))"

enter image description here

在我的安装项目中,所有依赖项都标记为Register:vsdraCOM。

enter image description here

我的设置项目和应用程序项目本身都将其目标设置为' x64'。

enter image description here

enter image description here

在我的安装项目中,我还实现了找到的解决方案here,其中详细说明了使用Fix64bitInstallUtilLib.js脚本和64位InstallUtilLib.dll来正确安装64位项目而不会遇到BadImageFormatException问题。我的项目安装和启动没有任何问题,但是当它遇到使用BOSCH Video SDK的第一行时,我得到了#34; Class未注册"错误。

我还尝试使用32位和64位版本的regsvr32.exe手动注册DLL文件,但每次出现错误时都会读取"入口点DllRegisterServer"没找到。

enter image description here

我不确定还有什么可以尝试的。我觉得我错过了这个难题的关键部分。如果需要任何其他信息,请告诉我。

我们的最终目标是能够将setup.msi文件部署到新的客户端计算机,而无需先手动安装BOSCH Video SDK。我认为这就像包含所需的DLL文件和设置Register:vsdraCOM一样容易,但我想它不是那么简单。

1 个答案:

答案 0 :(得分:0)

我明白了。答案是将博世视频SDK运行时包含在我的安装程序中,在我的项目中创建应用程序清单,并将SDK作为清单添加到清单中。使用条件' Release | x64'将PropertyGroup添加到CSPROJ文件也很方便。因此只有在发布模式下编译时才包含清单。

  1. 将Bosch Video SDK Runtime文件夹添加到源代码管理中。 enter image description here

  2. 在安装项目中将运行时文件和文件夹添加到应用程序文件夹。enter image description here

  3. 将app.manifest文件添加到项目并添加SDK的依赖项部分。 enter image description here

  4. 使用文本编辑器编辑CSPROJ文件,并添加一个PropertyGroup,其条件为' Release | x64'以便您的清单仅用于发布版本。 enter image description here

  5. 希望这在某些方面证明对某人有用。这里真正的教训是实时阅读帮助文件..

相关问题