0

我正在尝试将 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

4

3 回答 3

0

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

A. 如果允许,将项目属性设置为 Target .NET Framework 3.5

B. 如果您需要以 .NET 4.0 为目标,那么您有以下两种选择:

  1. 在尝试将 Apple Quicktime Control 2.0 对象移动到 WinForm 之前,您可以手动将 AxInterop.QTOControlLib.dll 复制到项目 ../obj/x86/Debug 或 /Release 文件夹中,请参阅上面的答案,其中包含更多详细信息。

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

尼尔

于 2013-02-11T22:44:08.083 回答
0

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

于 2013-01-21T16:46:46.367 回答
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 修补程序补丁)。如果您从构建菜单执行 Rebuild appname,您将收到相同的错误 - “无法加载文件或程序集 'Interop.QTOLibrary, Version=1.0.0.0...”。在那种情况下,只需将 AxInterop.QTOControlLib.dll 放回 .. /obj/x86/Debug /Release 目录并执行正常构建 (Shift+F6)。发生的情况是 Rebuild/Clean 从导致此问题的 ../obj/x86/Debug /Release 目录中删除了 AxInterop.QTOControlLib.dll。同样 KB2066987 修补程序显然解决了这个确切的问题。您必须向 Microsoft 寻求此修补程序的支持;我已向 Microsoft 请求支持 KB2066987 修补程序,今天应该会收到。

于 2013-02-07T00:34:54.737 回答