VB.NET 2010 项目设置/安装包问题
我已经为我编写的 VB.NET 2010 应用程序创建了一个安装项目。该应用程序和安装程序在我的开发计算机上都运行良好。
安装程序在其他机器上运行良好,但是当我运行我的应用程序时,它立即崩溃并死掉,并且没有告诉我任何有用的信息。我已经在 Windows 7、Windows XP 和 Windows Vista 机器上尝试过......并且都遇到了相同的问题,所以我认为这更多是一个包配置问题,而不是特定于机器的问题。
以下是我从中获得的最有用的信息:
{"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)
我正在使用第三方 COM ActiveX 控件,该控件在我的参考资料中。我认为我已正确配置该特定参考:“嵌入互操作类型”设置为 false
,“复制本地”设置为 true
。另外,我不确定这是我遇到问题的特定 DLL,因为“身份”显示为 {9FC6FA7A-5A93-4F93-8351-8BEF6D483280}\1.0\0\tlbimp< Visual Studio 中的 /code> (与上述错误中的 CLSID 不同)。虽然,我不确定在这种情况下“Identity”和“CLSID”是否相同???
以下是我的项目引用配置方式的屏幕截图链接: https://i.sstatic.net/lltuv .jpg
以下是该程序的进程监视器跟踪尾部屏幕截图的链接: https://i.sstatic.net/D4Xeu.jpg
以下是该过程的完整 Procmon 日志文件的链接:http://dl.dropbox.com/u/7461/ProcmonLogfile.PML
任何有关如何解决此问题(甚至如何进行调试)的建议将不胜感激。谢谢。
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: https://i.sstatic.net/lltuv.jpg
Here's a link to a screenshot of the tail end of a Process Monitor trace for the program: https://i.sstatic.net/D4Xeu.jpg
Here's a link to the full Procmon logfile for the process: 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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
啊哈!我想通了...
我必须使用
vsfrfCOM
方法在安装程序中注册 COM ActiveX .DLL 和 .OCX 文件。Aha! I figured it out...
I had to register the COM ActiveX .DLL and .OCX files in the installer using the
vsfrfCOM
method.