c# - Windows 应用程序打包项目的 Windows 存储错误
问题描述
我将空白 UWP 项目打包到 Windows 应用程序打包项目中。
这两个项目都有:
- 目标版本Windows 10,版本 1903(10.0;内部版本 18362)
- 最低版本Windows 10,版本 1809(10.0;内部版本 17763)
我在App.xaml.cs中编写了一个简单的代码来创建设置值
using Windows.Storage;
...
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
ApplicationDataContainer Sett = ApplicationData.Current.LocalSettings;
if (Sett.Values["test"] == null)
{
Sett.Values["test"] = true;
}
// Sett.Values["test"] = true; // Also causes an error
...
}
当我运行 TestPkg(x86 调试)时,我在调试控制台中收到此消息
onecoreuap\base\appmodel\statemanager\winrt\lib\windows.storage.applicationdatafactory.server.cpp(235)\Windows.Storage.ApplicationData.dll!7B6D1391: (caller: 05769996) ReturnHr(1) tid(546c) 8000000B The operation attempted to access data outside the valid range
Msg:[User XXX]
正确保存的值我可以毫无问题地读取它。仅当您将 UWP 打包到 Windows 应用程序打包项目时才会出现该错误。
我还在这两种情况下都使用 windows.fullTrustProcess (UWP + WPF) 进行了尝试。在这两种情况下,行为都是相似的。
我怎样才能解决这个问题?来源:https ://github.com/steam3d/Windows.Storage.Error
解决方案
将 WinUI 3 Preview 3 与打包在 MSIX 中的桌面应用程序一起使用时,我遇到了类似的错误。
就我而言,异常发生在启动期间的某个时间。我确实有访问 Windows.Storage.ApplicationData 的代码。
我在调试器中看到的异常在下面复制了一个源代码行。
onecoreuap\base\appmodel\statemanager\winrt\lib\windows.storage.applicationdatafactory.server.cpp(235)\Windows.Storage.ApplicationData.dll!16891391: (调用者: 0E7F9FB1) ReturnHr(1) tid(33bc) 8000000B操作试图访问有效范围之外的数据 Msg:[User S-1-5-21-3122765350-3099923779-1351685958-1002] 在 Q5U.exe 中的 0x7679A892 (KernelBase.dll) 处引发异常:0x40080202:WinRT 转换错误(参数:0x8000000B、0x80070490、0x00000014、0x005BE3F4)。OnLaunched(种类=启动)
推荐阅读
- web - 自定义域 => 本地主机
- android - RxJava Single.toCompletable() 似乎以某种方式打破了 Single
- c# - 是否可以在 IHttpModule 中访问 IHttpContext.LogRequest 中的 SessionId
- c - 由于我的字符串格式以及所使用的参数,我的 printf 格式说明符将无法编译
- python - web3@1.0.0-beta.26 使用 Yarn 安装失败
- java - 在 JavaFX 中使用窗格进行文本绑定
- javascript - 数组推送值不是字符串
- vuejs2 - 创建 Vue 应用程序:vue create 不起作用
- php - 将图像标题插入数据库不起作用?
- javascript - 使用 Javascript 在 Javascript 中选择图像