我有一个小型桌面应用程序,其中包含4个文本文件,我将用作配置文件。我将这些文件与项目的主要输出一起添加到应用程序文件夹中。
一切都很好。但是,安装后我无法更新安装应用程序的文件夹中的文本文件。
是否有可以进行此读写的设置?或者更多的是Windows权限问题?
如果我将应用程序设置为在C盘中查找文件夹(即c:\ foldernamegoeshere)会更好吗?我认为将r / w文件安装到安装位置比告诉用户创建文件夹然后将文件添加到文件夹等更好。
有关如何使用安装部署项目完成所有操作的想法吗?
答案 0 :(得分:3)
将它们保存在app文件夹中并使用commonappdata或user-appdata文件夹作为可写版本...当应用程序启动时,检查文件是否存在于可写文件夹中 - 如果不是从app文件夹中复制它们,否则只是使用它们
您可以在调用ApplicationData
时使用来自CommonApplicationData
的{{1}} / LocalApplicationData
/ Environment.SpecialFolder
中的任意一个,然后只需实现上面的逻辑。
MSDN参考:http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx
答案 1 :(得分:0)
您的应用程序是否从Citrix客户端运行?我已经看到当应用程序安装在具有管理帐户的“C:\ Program Files \”中时发生此问题,但是然后用户从其配置文件中执行应用程序而没有对“C:\ Program Files”的写访问权限运行应用程序。如果是这种情况,那么您可能需要将应用程序安装在用户具有写访问权限的其他文件夹或分区中。
要检查的另一件事是,当VS将它们添加到安装程序包时,文本文件是否未标记为只读。检查已安装的文本文件是否为只读。
答案 2 :(得分:0)
同时存在用于保存/加载数据的所有用户和个人用户文件夹。
对于每个用户在应用程序文件夹中安装应用程序和文本文件,然后应用程序会将它们复制到用户配置文件的ApplicationData文件夹(如果它们不存在),并在那里处理它们。
对于每台计算机访问,请使用共享应用程序数据文件夹作为文本文件,并让您的应用程序在那里工作。
安装程序部署项目包含允许分发到上述所有目标的文件夹设置。