无法加载文件或程序集 'System.Runtime.Handles' - Xamarin UWP

Could not load file or assembly 'System.Runtime.Handles' - Xamarin UWP

我们在整个代码中使用独立存储,并且它一直运行良好。突然这个错误开始出现在几个不同的项目中,这意味着我根本无法使用独立存储。我尝试添加 System.Runtime.Handles NuGet 包,但没有任何区别。

这是代码:

        using (var userStore = IsolatedStorageFile.GetUserStoreForApplication())
        {
        }

System.IO.IsolatedStorage.IsolatedStorageException occurred
HResult=0x80131450 Message=Operation not permitted. Source= StackTrace: at System.IO.IsolatedStorage.IsolatedStorageFile.CreatePathPrefixIfNeeded(String path) at System.IO.IsolatedStorage.IsolatedStorageFile.FetchOrCreateRoot()
at System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStore() at System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication() at Adapt.Presentation.XivicControls.XivicUtilities.CreateAttachmentsFolders() in C:\AdaptSource\Xivic\Adapt.Presentation.XamarinForms\Adapt\Presentation\XivicControls\XivicUtilities - Xamarin Forms.cs:line 19 at Adapt.Presentation.XamarinForms.App.d__31.MoveNext() in C:\AdaptSource\Xivic\Adapt.Presentation.XamarinForms\Adapt\Presentation\XamarinForms\App.xaml.cs:line 99

Inner Exception 1: FileNotFoundException: Could not load file or assembly 'System.Runtime.Handles, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.

但是,这也是编译时的问题。我在单独的项目中收到此编译器错误消息:

Severity Code Description Project File Line Suppression State Error Could not copy the file "C:\Users\chris.nuget\packages\runtime.any.System.Runtime.Handles.3.0\lib\netstandard1.3\System.Runtime.Handles.dll" because it was not found. TestXamarinForms.UWP C:\Program Files (x86)\Microsoft Visual Studio17\Professional\MSBuild.0\Bin\Microsoft.Common.CurrentVersion.targets 4222

如果你在这里查看我的 repo,你可以很容易地看到错误: https://ChristianFindlay@bitbucket.org/ChristianFindlay/xamarin-forms-scratch.git

据我所知 IsolatedStorage 在 Xamarin 应用程序中不受支持。您应该在每个平台上使用本机存储机制来存储 files/data/settings - 如此处所述 https://developer.xamarin.com/guides/ios/application_fundamentals/working_with_the_file_system/ .

对于 UWP,您需要使用 System.IO.FileWindows.Storage 来存储和管理文件。

无需执行任何操作即可解决此问题。我无法解释它是如何解决的,但我怀疑这是 Appx 安装的问题。我相信应用程序的安装不知何故被破坏了,因此隔离存储也被破坏了。出于不同的原因,我在这里开始了另一个线程:

我需要像这样通过 powershell 卸载应用程序的答案,因为应用程序以某种方式安装了不同的用户名:

Get-appxpackage -allusers <appname> | Remove-AppxPackage

独立存储现在可用。神奇的是,我遇到的带有相同错误消息的编译错误也已清除。这一切都还是个谜。