如何解决缺少 class 的 ActivatableAttribute
How to workaround missing ActivatableAttribute for a class
我们在 Windows Phone 8.1 Runtime 应用程序中使用 Lumia.Imaging.SDK 2.0。出于某种原因,Microsoft 未能在 Lumia.Imaging.RandomAccessStreamImageSource class 上设置 ActivatableAttribute。因此,此 class 不会在 appxmanifest.xml 中被标记为 ActivatableClass。当然,尝试实例化此 class 会导致以下错误。
A first chance exception of type 'System.TypeLoadException' occurred
in MyApp.exe Requested Windows Runtime type
'Lumia.Imaging.RandomAccessStreamImageSource' is not registered.
有谁知道如何在 运行 时将此 class 注册为可从 C# 激活?或者,有没有办法 "hack" Lumia.Imaging.winmd 包含 ActivatableAttribute?
感谢您的帮助。
确保您拥有最新版本。我从 MSDN 下载了 Quickstart,它在 Phone 和桌面 Windows 上都能完美运行(不过你必须将 Lumia NuGet 包从 2.0.178-alpha
更新到 2.0.184
).
示例代码使用 RandomAccessStreamImageSource
没有问题(通过在调试器中单步执行该行代码进行验证)。
我遇到了同样的问题。这是工作解决方案。
手动将这些行添加到 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
的引用
我们在 Windows Phone 8.1 Runtime 应用程序中使用 Lumia.Imaging.SDK 2.0。出于某种原因,Microsoft 未能在 Lumia.Imaging.RandomAccessStreamImageSource class 上设置 ActivatableAttribute。因此,此 class 不会在 appxmanifest.xml 中被标记为 ActivatableClass。当然,尝试实例化此 class 会导致以下错误。
A first chance exception of type 'System.TypeLoadException' occurred in MyApp.exe Requested Windows Runtime type 'Lumia.Imaging.RandomAccessStreamImageSource' is not registered.
有谁知道如何在 运行 时将此 class 注册为可从 C# 激活?或者,有没有办法 "hack" Lumia.Imaging.winmd 包含 ActivatableAttribute?
感谢您的帮助。
确保您拥有最新版本。我从 MSDN 下载了 Quickstart,它在 Phone 和桌面 Windows 上都能完美运行(不过你必须将 Lumia NuGet 包从 2.0.178-alpha
更新到 2.0.184
).
示例代码使用 RandomAccessStreamImageSource
没有问题(通过在调试器中单步执行该行代码进行验证)。
我遇到了同样的问题。这是工作解决方案。 手动将这些行添加到 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
的引用