Che*_*hen 5 c# local-storage windows-8
当我在visual studio 2012 RC中编译我的应用程序时,我可以看到bin\项目源文件夹中按预期生成的文件夹,其中有一个foo.exe,看起来像应用程序的条目.当我开始调试应用程序时,它的图标被放在开始屏幕上,我可以找到创建的新文件夹
C:\用户\人\应用程序数据\本地\包\ xxxxx_xxxxxx
但是我在这个文件夹中找不到foo.exe,即使我搜索了整个磁盘.似乎win8应用程序具有与旧Windows程序不同的安装/部署机制.我的问题是:
(1)部署/安装win8应用程序的方式/位置?
(2)我想\AppData\Local\Packages\xxxxx_xxxxxx\LocalState用作本地数据文件夹(ApplicationData.Current.LocalFolder在代码中等于),但是当右键单击开始屏幕图标并按"卸载"时,整个文件夹被删除,没有任何警告.有没有更好的地方存储本地数据?或者我需要SQLite?例如,我的应用程序写入所有崩溃消息error.txt,显然我不能在这种情况下使用sqlite,如果我放入error.txtLocalState文件夹,用户可能已经卸载了应用程序,然后我去找他看看是什么error.txt.另一种情况是:用户想要卸载应用程序,但保留其本地数据(文件).显然ApplicationData.Current.LocalFolder不是一个好选择.
1) Windows 8 软件包部署到 c:\Program Files\windowsapps\,但默认情况下您没有该文件夹的所有权,因此无法访问它。不过,这很大程度上无关紧要。按照设计,您不应该有权访问此文件夹。
2) 同样,在卸载时删除应用程序的本地数据文件夹是预期行为。否则,如果您通过商店部署了一个应用程序,并且它开始出现问题并占用了您所有的可用存储空间,那么用户将没有简单的方法来删除该数据。然而,您关于没有警告的说法是不正确的。卸载弹出窗口清楚地显示“此应用程序及其相关信息将从这台电脑中删除”
在某些情况下,可以选择将数据存储在漫游文件夹中,但该文件夹并不打算存储大量数据 - 它用于保存在设备之间漫游的应用程序设置/配置选项。您可以在开发期间将崩溃日志放在那里(如果它足够小),但不能保证它会在应用程序卸载之前同步到云端。您最好的选择可能是使用 Live SDK 将数据同步到云端,但同样,您无法保证数据会立即写入云端。
| 归档时间: |
|
| 查看次数: |
3148 次 |
| 最近记录: |