XBAP使用非托管c++;COM服务器,并行部署问题

XBAP使用非托管c++;COM服务器,并行部署问题,com,manifest,xbap,side-by-side,clsid,Com,Manifest,Xbap,Side By Side,Clsid,我面临着以下情况: 我创建了一个简单的完全信任XBAP应用程序,它引用了非托管C++ COM服务器(隔离)。 部署后,我希望XBAP应用程序将发现放置在同一目录中的COM服务器dll,但事实并非如此。 我得到以下错误: 调用的目标已引发异常。-->System.Runtime.InteropServices.COMException(0x80040154):由于以下错误,检索CLSID为{970599E0-2673-11D3-A8A8-00105AA943DF}的组件的COM类工厂失败:8004

我面临着以下情况: 我创建了一个简单的完全信任XBAP应用程序,它引用了非托管C++ COM服务器(隔离)。 部署后,我希望XBAP应用程序将发现放置在同一目录中的COM服务器dll,但事实并非如此。 我得到以下错误:

调用的目标已引发异常。-->System.Runtime.InteropServices.COMException(0x80040154):由于以下错误,检索CLSID为{970599E0-2673-11D3-A8A8-00105AA943DF}的组件的COM类工厂失败:80040154。 在第888代。第888代。简单(int32num1,int32num2)

我验证了部署XBAP的文件夹是否包含包含正确CLSID的DLL和XBAP清单

如果我创建了一个简单的C#Windows窗体应用程序并引用了相同的COM dll,那么它就可以正常工作

我的问题是XBAP是否支持并行机制


谢谢

我对XBAPs不太熟悉,所以以下是一些一般性建议。 如果您的XBAP实际上是作为单独的可执行文件启动的,因为它是fulltrust(taskmgr怎么说?),请尝试在Windows Vista或更高版本的提升命令行中使用“sxstrace.exe”工具,以确定系统是否实际解释了XBAP清单。如果您第一次尝试应用程序时没有清单或更改清单,系统可能会缓存此旧信息,您需要通过触摸清单和可执行文件的时间戳来清除此清单状态缓存

您的可执行文件也可能有一个嵌入式清单,这意味着外部清单将被忽略。要检查这一点,请在Visual Studio中打开可执行文件,查看它是否具有ID为1的RT_清单资源