使用StoreContext

时间:2019-01-20 18:33:46

标签: .net uwp .net-native

我想在我的UWP应用程序中管理一些附加组件。应用程序的目标是Windows 10 Fall Creators Update(均为16299 SDK)的最低/目标。

我有一个名为LicenseHelper的类,它使用Windows.Services.Store命名空间下的StoreContext类。一切都在调试模式下构建良好。但是,如果要在x64和x86体系结构的发布模式下进行构建,则编译器将引发以下序列化错误:

Generating serialization code
2>  Compiling interop code
2>C:\Users\Burak\.nuget\packages\microsoft.net.native.compiler\2.1.8\tools\Microsoft.NetNative.targets(788,5): error : Error generating serialization code for the root type SimpleStream.Helpers.LicenseHelper: Cannot find the assembly 'Windows.Services.Store.StoreContract' in the probing directories.
2>  Generating System.Reflection.DispatchProxy proxy code.
2>C:\Users\Burak\.nuget\packages\microsoft.net.native.compiler\2.1.8\tools\Microsoft.NetNative.targets(788,5): error : ILT0032: Failed to compile serialization code. See the build log for error details.

如果删除与StoreContext相关的所有内容,构建就可以了。在任何地方都没有直接使用StoreContract结构。仅仅一个简单的StoreContext定义就足以使编译器无法在Release版本上进行序列化。

另一件事是,我曾经让它工作。第一个使用StoreContext的程序包已经在商店中进行了相同的设置,例如最小/目标SDK版本和.NET Core UWP程序包(6.1.9)。不知道为什么它不再起作用了。

试图将.NET Core nuget升级以预览它们,甚至对其降级甚至都无济于事。

可能是编译器甚至SDK本身的内部错误,但我不知道。

这可能是什么原因?

1 个答案:

答案 0 :(得分:1)

在这种情况下,我认为这是一个兼容性问题,Prism不完全支持最新的Windows版本。

StoreContext文档对此提供了一些指示。

https://docs.microsoft.com/en-us/uwp/api/Windows.Services.Store.StoreContext