2011-02-07 44 views
0

我正在开发将通过ClickOnce发布的应用程序。我一直在使用Application.ExecutablePath文件夹来存储一些授权信息。现在,我希望应用程序检查更新,但每当许可证文件丢失并且用户需要再次输入信息时。看起来像ClickOnce基本上是卸载并重新安装新版本的应用程序。我可以将许可证文件保存在System文件夹中的某个位置,但这是一个难以解决的问题。另一个具有相同名称的文件可能已经存在,或者我可能会拒绝访问异常或类似的东西。我没有试图隐藏文件。我需要该文件夹可以在没有管理员权限的情况下访问。将信息存储在卸载后仍然存在的文件中

那么,我可以存储一个文件的最好和最安全的方式是什么,我会卸载(或更新)应用程序后将保留一个文件?

+0

停止使用免费版本的Visual Studio的时候了。你只能先花钱才能赚钱。请注意RTM版本中的设置和部署项目支持。 – 2011-02-08 00:54:19

+0

你的意思是快捷版?我正在使用专业版。如果你的意思是设置和部署项目,我已经尝试过,并且比帮助更痛苦。 ClickOnce迄今为止更容易完成工作。 – Juan 2011-02-08 00:57:44

回答

1

我想你应该把它存储在通用的应用程序数据库中。您可以通过以下代码获取文件夹路径

Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData); 

此文件夹是内置的特殊文件夹。主要目的是为使用相同应用程序的所有用户存储共享的应用程序数据。通常,您希望创建一个包含该文件夹下的公司名称和产品名称的子文件夹,以便它不会与其他应用程序发生冲突。如果您不想将许可证密钥分享给同一台计算机上的所有用户,则可以使用System.Environment.SpecialFolder.ApplicationData代替。

0

我看到许多应用程序隐藏他们的许可证设置在注册表中 - 有时隐藏在聪明的键名下。我讨厌它作为一个用户,但如果你想保留数据,我认为注册表是最好的。