目前,我们正在试图将的Lync通信(SDK的Lync 2010)到我们的应用程序,我们已经运行与问题VideoWindows
( CaptureVideoWindow
, RenderVideoWindow
了的) AVModality
的VideoChannel
:他们总是空,即使成功调用BeginStart
。 连接是绝对成立。 我们可以谈。 我们自己的视频显示在远程Lync客户端。 AVModalityState
的Connected
。 VideoChannelState
去从Connecting
到Receive
到Send
。
不要紧,当我们如何试图访问这些:后直接BeginStart
,在AsyncCallback
的BeginStart
,为应对各种状态变化或响应外部触发(用户点击事件); 在主/ UI线程,或事件/回调线程。 这两个视频窗口总是空。
在示例应用程序为“%ProgramFiles%\微软的Lync \ SDK \样本\ AudioVideoConversation”,一切按预期工作:只要BeginStart
完成后,我们可以访问非空的视频窗口。 在我们的小独立的工程样机,它的工作原理了。 但在我们的实际应用中,它没有。
我们有双重检查一切,我们确实已用完什么可能导致此问题的想法。
任何想法,任何提示? 凡是我们应该知道的?
(链接到相应的MSDN论坛线程)
更新 (4日2012年7月,15:46 CET):
当我们一起来看看在VideoChannel的成员,我们发现一个内部收到COMException在“Microsoft.Office.Uc”出现:错误加载DLL,HRESULT:0x80029C4A(TYPE_E_CANTLOADLIBRARY)。 在更多细节附截图 。
我们做这个错误的一些研究,但没有发现任何对我们的工作。 任何想法是什么原因导致的异常?
更新 (9日2012年7月,16:43 CET):
我们做了一些进一步的测试...
我们的软件包括一个主要的应用,并通过加载插件多类“应用程序”的MEF 。 我们创建了一个最小的测试应用程序,使视频通话:视频窗口没有工作(如预期)。 但是,当我们采取了相同的代码,并建立我们的架构之外的独立的解决方案,那么它的工作。 所以,它与环境,而不是代码的问题。
起初,我们怀疑MEF可能是问题。 所以,我们砍死的Lync代码到我们的主要应用 - 绕过整个应用程序的体系结构。 还是行不通。
然后,我们切掉了我们的整个系统,点点滴滴,直到我们终于到达一个点,它的工作。 以下错误轨道几次之后,我们终于找到了罪魁祸首... Quartz.NET !
一些奇怪的原因的组件参考的Quartz.dll v.1.0.3.3的存在本身,即使没有的石英一行代码,使所述视频窗口到不行。 令人难以置信,但它是100%可重复的:如果我们把前面提到的测试解决方案,什么也不做,但添加引用,它停止工作。
任何想法的事情怎么这么有可能吗?