2013-01-21 95 views
0

我尝试使用用C#编写的Winforms应用程序的QuickTime 2.0 ActiveX插件。无法在Windows 7中使用RegAsm注册.dll

首先,将对象从我的工具箱拖到窗体中,但出现错误,提示无法导入ActiveX控件并检查它是否已正确注册。在解决方案资源管理器的引用标题下,AxQTOControlLib引用显示为失败。

为了试图解决这个问题(搜索解决方案后),我使用AxImp为QuickTime程序文件中的QTOControl.dll创建控件的相关C#包装。

然后我尝试使用RegAsm注册到系统.dll文件,但是当我这样做,我得到以下错误:

"RegAsm : error RA0000 : Could not load file or assembly 'QTOControlLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified."

我已经检查过该文件明确存在,且路径是正确的。

请帮助您解决此问题,以便可以注册.dll,并且可以在Winforms应用程序中使用QuickTime ActiveX控制器。

我使用以下设置:

的Windows 7(64位) 视觉工作室2010 .NET 4.0

回答

0

通过AxImp创建DLL不需要与RegAsm注册。 QTOControlLib.dll不公开任何COM对象,它只包含从.Net使用QuickTime COM对象所需的包装。只需将由AxImp生成的DLL复制到解决方案目录中,并在Visual Studio中添加对它们的引用即可。

+0

谢谢你的提醒,我已经加入到所需的.dll手动引用,然后试图programaticaly添加QT控制,但是我现在得到了同样的错误,因为只有在VS此时上方。 –

0

MJ - 我有同样的问题,我终于弄清楚了答案: 当您尝试将Apple QuickTime Control 2.0 ActiveX COM对象从工具箱移动到WinForm时,只有当您尝试将VS2010发生此问题针对.NET 4.0。如果你回到.NET 3.5或更早版本,它可以正常工作。解决此问题的方法是在尝试将Apple Quicktime Control 2.0对象移动到WinForm之前手动将AxInterop.QTOControlLib.dll复制到项目../obj/x86/Debug或/ Release文件夹中。有一个Microsoft知识库文章ID:2066987(Visual Studio修补程序修补程序)。如果您从构建菜单执行重建应用程序名称,则会出现相同的错误 - “无法加载文件或程序集”Interop.QTOLibrary,Version = 1.0.0.0 ...“。在这种情况下,只需将AxInterop.QTOControlLib.dll放回到../obj/x86/Debug/Release目录中并执行正常的Build(Shift + F6)。重建/清理会从../obj/x86/Debug/Release目录中删除导致此问题的AxInterop.QTOControlLib.dll。 KB2066987修补程序显然解决了这个确切的问题。您必须要求Microsoft支持此修补程序;我已经向Microsoft提供了KB2066987修补程序支持请求,并且应该在今天收到它。

+0

如果提供更多信息或要求澄清,请将其添加为问题的评论,而不是提交答案。 – Gambit

+0

开局 - 我的回应可能是他的问题的答案。如果他的目标是.net 3.5框架,他的问题将得到解决。他没有明确表示他必须瞄准.net 4.0。所以如果实际上他可以以.net 3.5为目标,那么它将解决这个问题。因此,这很可能是一个答案。 –

+0

我不打算将您的建议作为可能的解决方法进行折扣。但正如你所说的那样,它并没有真正回答这个问题,所以通常最好先查询他是否可以选择在评论部分中定位较低版本的.Net。 – Gambit

0

解决在Visual Studio 2010中安装的Apple QuickTime控制2.0到WinForm的

A. Set Project properties to Target .NET Framework 3.5 if allowed

B. If you need to Target .NET 4.0 then you have the following two choices:

  1. 可以AxInterop.QTOControlLib.dll手动复制到项目 ../obj/x86/Debug或/释放文件夹尝试将 Apple Quicktime Control 2.0对象移动到WinForm之前,请参阅我的回答 ,其中有更多详细信息。

  2. 您可以从Microsoft获得修复程序;参考知识库文章编号206697. 我收到并安装了此修补程序,它确实解决了 问题。请注意您必须从MS支持请求此修复程序。

尼尔

+0

MJ - 有关解决方案B-1的更多详细信息,请参阅下面的其他答案。尼尔 –