开发者

DLLs not being found in .NET project

I have a project that uses a few 3rd party DLLs, and am working on the setup project for deployment. The program runs fine when running (debugging) from within Visual Studio 2005, but does not when "installed".

The DLLs get copied to the application folder correctly. My understanding is that the DLLs are not being registered by the installer. "Retreiving the COM class factory for component with CLSID { GUID } failed due to the following error: 80040154"

In the setup project, each DLL assembly has the "Register" property set to "vsdraCOM", which I thought was supposed to trigger registration.

Edit: It appears they are all .NET assemblies as is my application, and registration should not be an issue. Title changed to r开发者_开发问答eflect this.

This seems like it should be pretty basic, but I don't What should I be doing?


Use Dependency Walker (http://dependencywalker.com/) to check what else the DLLs may be trying to load.

Then try searching for your GUID in the registry under HKCR\CLSID where InprocServer32 should contain a path to a successfully registered DLL.


If those are normal COM object (not .NET assemblies) that are self registering (i.e. you can register them with regsvr32) then you want vsdraCOMSelfReg not vsdraCOM. vsdraCOM is used to register .NET assemblies for COM interop.

Yeah, it's not intuitive at all.


The DLLs in use had come in an SDK package with documentation, code examples, etc. from the vendor, in an installer. I had all the loose files which transferred when moving to a new computer, but didn't catch that I had not actually run the installer on the new computer.

Installing the SDK must do whatever registration was needed - my application now runs properly. I can install on a target machine by running both installers, which is acceptable.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜