2

我们在 Windows Phone 8.1 运行时应用程序中使用 Lumia.Imaging.SDK 2.0。由于某种原因,Microsoft 未能在 Lumia.Imaging.RandomAccessStreamImageSource 类上设置 ActivatableAttribute。因此,此类不会在 appxmanifest.xml 中标记为 ActivatableClass。当然,尝试实例化此类会导致以下错误。

MyApp.exe 中发生了“System.TypeLoadException”类型的第一次机会异常请求的 Windows 运行时类型“Lumia.Imaging.RandomAccessStreamImageSource”未注册。

有谁知道我如何在运行时将此类注册为可从 C# 激活的?或者,有没有办法“破解” Lumia.Imaging.winmd 以包含 ActivatableAttribute?

谢谢你的帮助。

4

2 回答 2

2

我有同样的问题。这是工作解决方案。手动将这些行添加到Package.appxmanifest(使用任何文本编辑器):

  <Extensions>
    <Extension Category="windows.activatableClass.inProcessServer">
      <InProcessServer>
        <Path>Lumia.Imaging.dll</Path>
        <ActivatableClass ActivatableClassId="Lumia.Imaging.RandomAccessStreamImageSource" ThreadingModel="both" />
      </InProcessServer>
    </Extension>
  </Extensions>

</Package>

确保您的主(可执行)库在 Lumia.Imaging.dll 上有参考

于 2015-01-20T07:36:18.780 回答
0

确保您拥有最新版本。我从MSDN下载了快速入门,它在电话和桌面 Windows 上都能完美运行(您必须将 Lumia NuGet 包从更新到更新2.0.178-alpha2.0.184

示例代码使用RandomAccessStreamImageSource没有问题(通过在调试器中跳过该行代码进行验证)。

于 2015-01-20T04:51:26.500 回答