IsolatedStorageFileStream导致断言失败

地狱

我决定对临时文件使用隔离存储:

using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForDomain())
{
    using (IsolatedStorageFileStream userStream = new IsolatedStorageFileStream("UserSettings.set", FileMode.Create, isoStore))
    {

    }
}

我从在此计算机上工作的示例获取了此代码仅使用此代码的最小项目也可以成功运行。

但是IsolatedStorageFileStream在我当前的项目中执行构造函数时,会出现以下消息:

MyApp.exe-断言失败

表达式:[mscorlib递归资源查找错误]

描述:mscorlib中资源查找期间的无限递归。这可能是mscorlib中的错误,也可能是某些可扩展性方面的错误,例如程序集解析事件或CultureInfo名称。

资源名称:Serurity_Generic

在此消息中,我可以看到相当大的堆栈跟踪(它从IsolatedStorageFileStream构造函数的调用开始):

在此处输入图片说明

我也无法从此代码捕获异常。

似乎发生了错误System.Environment.ResourceHelper.GetResourceStringCode()

这可能是什么原因?我在这个话题上找不到任何东西。

删除C:\Users\user\AppData\Local\IsolatedStorage文件夹并不能解决问题(我确定只有文件夹)。

凯文·高斯

查看stacktrace,基本问题来自LongPathFile.GetLength路径中可能存在一些无效字符,或者可能是权限问题。没有确切的错误代码很难分辨。然后,.NET尝试加载与错误代码相关的错误消息,并在某些时候进入其中Costura.AssemblyLoader(这必须是您的代码或您要引用的某些库)。看起来AssemblyLoader订阅了该AssemblyResolve事件,并且在获取正确的程序集方面做得很糟糕,因为它实际上导致了无限递归。

简而言之:修复该程序集加载器,然后您将能够得到真正的错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章