我决定对临时文件使用隔离存储:
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] 删除。
我来说两句