c# – ClickOnce和IsolatedStorage

前端之家收集整理的这篇文章主要介绍了c# – ClickOnce和IsolatedStorage前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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不为空.

猜你在找的C#相关文章