加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ClickOnce和IsolatedStorage

发布时间:2020-12-15 03:47:14 所属栏目:百科 来源:网络整理
导读:Winform应用程序在我们的Intranet中发布了ClickOnce.我们将个人喜好存储在隔离存储器中的GUI.所有的作品都很好:) 问题是当我们有一个新版本的应用程序,我们发布…所有的偏好都丢失了!用户需要设置每个版本的偏好. 有没有办法冻结整个应用程序的隔离,而不是
Winform应用程序在我们的Intranet中发布了ClickOnce.我们将个人喜好存储在隔离存储器中的GUI.所有的作品都很好:)

问题是当我们有一个新版本的应用程序,我们发布…所有的偏好都丢失了!用户需要设置每个版本的偏好.

有没有办法冻结整个应用程序的隔离,而不是版本?

解决方法

您需要使用应用程序作用域,而不是域范围的隔离存储.这可以通过使用IsolatedStorageFileStream的一个重载构造函数完成.

例:

using System.IO;
using System.IO.IsolatedStorage;
...

IsolatedStorageFile appScope = IsolatedStorageFile.GetUserStoreForApplication();    
using(IsolatedStorageFileStream fs = new IsolatedStorageFileStream("data.dat",FileMode.OpenOrCreate,appScope))
{
...

但是,现在您将遇到此代码的问题,只有通过ClickOnce启动应用程序时才会工作,因为这是应用程序范围唯一可用的隔离存储空间.如果您不通过ClickOnce启动(例如通过Visual Studio),GetUserStoreForApplication()将抛出异常.

解决此问题的方法是在尝试使用应用程序作用域隔离存储之前确保AppDomain.CurrentDomain.ActivationContext不为空.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读