当前位置: 首页 > 编程语言 > C#

ClickOnce和IsolatedStorage分享

时间:2023-04-10 19:44:04 C#

ClickOnce和IsolatedStorageWinform应用程序是使用ClickOnce在我们的内部网中发布的。我们将GUI的个人偏好存储在隔离存储中。一切都很好:)问题是当我们发布新版本的应用程序时...所有首选项都丢失了!用户需要在每个版本上重复设置自己的偏好。有没有办法冻结整个应用程序而不是版本的隔离?您需要使用应用程序范围而不是域范围的隔离存储。这可以通过使用IsolatedStorageFileStream的重载构造函数之一来完成。示例:使用System.IO;使用System.IO.IsolatedStorage;...IsolatedStorageFileappScope=IsolatedStorageFile.GetUserStoreForApplication();使用(IsolatedStorageFileStreamfs=newIsolatedStorageFileStream(“data.dat”,FileMode.OpenOrCreate,appScope)){..但是,现在您只有在通过ClickOnce启动应用程序时才会遇到此代码的问题,因为这是应用程序范围的独立存储可用的唯一时间。如果未通过ClickOnce(例如通过VisualStudio)启动,GetUserStoreForApplication()将抛出异常。此问题的解决方案是在尝试使用应用程序范围的隔离存储之前确保AppDomain.CurrentDomain.ActivationContext不为空。我刚刚开发了一个ClickOnce应用程序并使用了Environment.GetFolderPath(ApplicationData)-例如漫游应用程序数据文件夹来存储所有设置。效果很好,并且在许多更新中幸存下来。只需使用您的应用程序或CompanyName/AppName或其他任何内容创建一个子目录,然后将所有内容存储在那里。其他答案摘要:IsolatedStorageFileisolatedStorage=IsolatedStorageFile.GetUserStoreForAssembly();//forvisualstudioif(System.Deployment.Application.ApplicationDeployment.IsNetwor?kDeployed){isolatedStorage=IsolatedStorageFile.GetUserStoreForApplication();//forclickonce}yourapplication用户设置的永久版本必须存储在更持久的存储中,例如数据库。如果可用,您的应用程序可以决定使用隔离存储。如果它不可用(由于较新的版本),应用程序应该从数据库中获取设置并使用它来重新初始化独立存储中的设置。如果更改设置,则应更新这两个位置。除非有更新版本的应用程序,否则您的应用程序不必从数据库中获取设置。以上就是C#学习教程:ClickOnce和IsolatedStorage分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: