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

ClickOnce部署的数据文件可以安全存放在哪里?Share

时间:2023-04-11 02:25:53 C#

我可以在哪里安全地存储ClickOnce部署的数据文件?我一直在使用ApplicationDeployment.CurrentDeployment.DataDirectory来存储客户端在运行时下载的内容,每次应用程序启动时都在那里,但现在我发现如果应用程序更新,这似乎是随机的。一键部署应用程序的用户数据存储最可靠的方法是什么?目前我一直在使用以下方法privateconststringLocalPath="data";公共字符串GetStoragePath(){字符串目录;如果(ApplicationDeployment.IsNetworkDeployed){ApplicationDeployment广告=ApplicationDeployment.CurrentDeployment;dir=Path.Combine(ad.DataDirectory,LocalPath);}else{dir=LocalPath;}返回创建目录(目录);我最初遵循标题为ClickOnce数据目录下的在ClickOnce应用程序中访问本地和远程数据一文,其中指出这是推荐的路径。注意:如果目录不存在,CreateDirectory(string)只会创建一个目录。我发现问题的根本原因是我创建了很多文件和一个索引文件,这个索引文件包含绝对路径,单击一次会在升级时移动内容(或副本),所以绝对路径没有存在的时间更长。我将按照Damokles的建议研究隔离存储,看看这是否具有与单击一次部署相同的副作用。另一种选择是在用户的AppData文件夹中为您的应用程序创建一个目录并将其存储在那里。您可以通过以下方式获取路径:Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)您会发现许多应用程序都使用它(它是本地等效项)。它也不会在ClickOnce版本之间移动。查看IsolatedStorage这应该有所帮助。它甚至可以在部分信任的环境中使用。为了保证数据的存在,需要使用System.IO使用应用范围IsolatedStorage;使用System.IO.IsolatedStorage;...IsolatedStorageFileappScope=IsolatedStorageFile.GetUserStoreForApplication();using(IsolatedStorageFileStreamfs=newIsolatedStorageFileStream("data.dat",FileMode.OpenOrCreate,appScope)){...从这篇文章中获取的代码这取决于您要保存的数据。您当前正在保存到数据目录,这很好。您需要注意应用程序的每个版本都有自己的数据目录。更新ClickOnce时,应用程序启动时,先前版本的所有数据都会复制到新版本。这为您提供了一个挂钩,可以将任何数据从一个版本迁移到另一个版本。这对于SqlLite或SQLCE等内存数据库很有用。我理解的一件事是,当您在数据目录中存储大量数据(4gig)时,这些数据会从旧版本复制到新版本。这将减少升级后的启动时间。如果你有很多数据或者你不想担心迁移它,你可以将数据存储在用户本地文件夹中,只要你完全信任,或者如果你有部分信任,则使用隔离存储。隔离存储本地用户应用数据以上是C#学习教程:ClickOnce部署的数据文件可以安全存放在哪里?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: