2013-01-21 38 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的更多詳細信息,請參閱下面的其他答案。尼爾 –