我試圖實例化我的機器上的Windows Media Player的COM對象:不能在C#中實例化COM組件 - 錯誤80070002
Guid mediaPlayerClassId = new Guid("47ac3c2f-7033-4d47-ae81-9c94e566c4cc");
Type mediaPlayerType = Type.GetTypeFromCLSID(mediaPlayerClassId);
Activator.CreateInstance(mediaPlayerType); // <-- this line throws
執行最後一行時,我得到以下錯誤:
System.IO.FileNotFoundException was caught
Message="Retrieving the COM class factory for component with CLSID {47AC3C2F-7033-4D47-AE81-9C94E566C4CC} failed due to the following error: 80070002."
Source="mscorlib"
StackTrace:
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Activator.CreateInstance(Type type)
at MyStuff.PreviewFile(String filePath) in F:\Trunk\PreviewHandlerHosting\PreviewHandlerHost.cs:line 60
InnerException:
該代碼適用於其他開發者機器和最終用戶機器。出於某種原因,它只在我的機器上失敗。可能是什麼原因?
我希望你張貼的問題是什麼,去幫助別人誰在這裏後抵達.... – overslacked 2009-11-24 04:45:30
的問題變成了成爲我們公司特有的東西。基本上,我們的軟件已經安裝了一個Windows Media預覽處理程序,後來被卸載,但留下了一些註冊表鍵。此預覽處理程序已經消失 - 因此文件未找到錯誤 - 但是一些註冊表項已遺留,導致此問題。 – 2009-11-24 16:05:18
非常感謝您的更新!我一直在上下服務器,我們有同樣的錯誤...我會採取任何細節,不管它們看起來多麼抽象或無用。 – overslacked 2009-11-24 21:16:52