无法在Windows 7中使用RegAsm注册.dll

时间:2013-01-21 16:20:40

标签: c# winforms dll quicktime regasm

我正在尝试将QuickTime 2.0 ActiveX插件用于用C#编写的winforms应用程序。

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

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

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

  

“RegAsm:错误RA0000:无法加载文件或程序集   'QTOControlLib,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'   或其中一个依赖项。系统找不到该文件   指定“。

我已经检查过,文件肯定存在且路径正确。

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

我使用以下设置:

Windows 7(64位) Visual Studios 2010 .Net 4.0

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

将Visual Studio 2010中的Apple Quicktime Control 2.0安装到WinForm上的解决方案

  

一个。如果允许,将Project属性设置为Target .NET Framework 3.5

     

B中。如果您需要Target .NET 4.0,那么您有以下两种选择:

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

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

  3. 尼尔

相关问题