I've created a setup project for a VB.NET 2010 application that I've written. The application, and the installer both work fine on my development machine.
The installer works fine on other machines, but when I run my application it immediately crashes and dies without telling me anything useful. I've tried it on Windows 7, Windows XP, and Windows Vista machines... and all had the same problem, so I think it's more of a package configuration issue than a machine-specific problem.
Here's the most useful information that I was able to get out of it:
{"An error occurred creating the form. See Exception.InnerException for details.
The error is: Retrieving the COM class factory for component with CLSID {3C7D2D88-00EA-4134-A737-D0381D0E6346} failed due to the following error:
80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))."}
at GarminRealtimePhotoTag.My.MyProject.MyForms.Create__Instance__[T](T Instance)
at GarminRealtimePhotoTag.My.MyApplication.OnCreateMainForm()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
at GarminRealtimePhotoTag.My.MyApplication.Main(String[] Args)
I'm using a third party COM ActiveX control, which I have in my references. I think I have that particular reference configured correctly: "embed interop types" is set to false
, and "copy local" set to true
. Also, I'm not sure that it's the particular DLL that I'm having an issue with, since the "Identity" is showing as {9FC6FA7A-5A93-4F93-8351-8BEF6D483280}\1.0\0\tlbimp
in Visual Studio (a different CLSID than in the error above). Although, I'm not sure if "Identity" and "CLSID" are the same thing in this case???
Here's a link to a screenshot of how my project references are configured: http://i.stack.imgur.com/lltuv.jpg
Here's a link to a screenshot of the tail end of a Process Monitor trace for the program: http://i.stack.imgur.com/D4Xeu.jpg
Here's a link to the full Procmon logfile for the proce开发者_如何学Pythonss: http://dl.dropbox.com/u/7461/ProcmonLogfile.PML
Any advice on how to solve this (or even on how to proceed debugging) would be greatly appreciated. Thanks.
Aha! I figured it out...
I had to register the COM ActiveX .DLL and .OCX files in the installer using the vsfrfCOM
method.
精彩评论