我正在开发一个将通过ClickOnce发布的应用程序。我一直在使用Application.ExecutablePath文件夹来存储一些许可信息。现在,我希望应用程序检查更新,但每当它检查更新时,许可证文件就会丢失,用户需要再次输入信息。看起来ClickOnce基本上是在卸载并重新安装应用程序的新版本。我可以将许可证文件保存在系统文件夹中的某个位置,但这是一个丑陋的解决方案。另一个同名的文件可能已经存在,或者我可能会得到访问被拒绝的异常或类似的东西。我不是想隐藏文件。我需要文件夹可以在没有管理员特权的情况下访问。
那么,在卸载(或更新)应用程序后,存储文件的最好、最安全的方法是什么?
发布于 2011-02-08 07:28:23
我认为您应该将其存储在公共应用程序数据位置。您可以通过以下代码获取文件夹路径
Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData);此文件夹是内置的特殊文件夹。它的主要用途是为使用同一应用程序的所有用户存储共享的应用程序数据。通常,您希望在该文件夹下创建一个包含公司名称和产品名称的子文件夹,这样它就不会与其他应用程序冲突。如果您不想将许可证密钥共享给同一台计算机上的所有用户,则可以改用System.Environment.SpecialFolder.ApplicationData。
发布于 2011-02-08 07:46:57
我见过许多应用程序将它们的许可证设置隐藏在注册表中--有时隐藏在聪明的密钥名称下。我讨厌它作为一个用户,但如果你喜欢保留数据,我认为注册表是最好的。
https://stackoverflow.com/questions/4927839
复制相似问题