我目前在应用程序目录中存储一个序列化的XML文件,其中包含所有特定于程序操作的更改(不是典型的系统或用户配置)。几周前,我们开始遇到无法正确保存的问题(请参阅关于此问题的我的先前问题)。
长话短说,最终我们发现Windows 7(有时是Vista)在写入应用程序目录(特别是Program Files下的任何内容)时存在问题。如果这是一个普通的配置文件,我只需将其存储在用户的APPDATA文件夹下,但它不是普通的配置文件。我们在自己的仪器上运行它,而误配置是客户运行我们软件的问题原因之一。因此,我们需要使此文件可访问,以便他们可以轻松找到并将其电子邮件发送给我们。对于经验丰富的用户来说,Appdata已经很难找到了,更不用说非常非技术人员了。
我们还尝试以管理员身份运行它,并使文件夹权限完全开放(我们可以控制运行它的每台计算机;它永远不会在某个随机人的机器上运行)。但这些有时有效,有时无效。
最糟糕的是,当我将文件写回时,它甚至不会抛出错误;它只是将其写入某个在某个未知时间点过期的临时目录中。几周后,我们的用户将遇到问题,配置文件全部混乱了。
那么,我的问题是,如果不是在Program Files中,我应该将此文件存储在哪里?我是否应该将其放在APPDATA中,并制作一个小实用程序,在出现问题时自动将其电子邮件发送给我们?或者我可以将其留在Program Files中,但更改某些特定的权限或注册表键以使其正常运行?
长话短说,最终我们发现Windows 7(有时是Vista)在写入应用程序目录(特别是Program Files下的任何内容)时存在问题。如果这是一个普通的配置文件,我只需将其存储在用户的APPDATA文件夹下,但它不是普通的配置文件。我们在自己的仪器上运行它,而误配置是客户运行我们软件的问题原因之一。因此,我们需要使此文件可访问,以便他们可以轻松找到并将其电子邮件发送给我们。对于经验丰富的用户来说,Appdata已经很难找到了,更不用说非常非技术人员了。
我们还尝试以管理员身份运行它,并使文件夹权限完全开放(我们可以控制运行它的每台计算机;它永远不会在某个随机人的机器上运行)。但这些有时有效,有时无效。
最糟糕的是,当我将文件写回时,它甚至不会抛出错误;它只是将其写入某个在某个未知时间点过期的临时目录中。几周后,我们的用户将遇到问题,配置文件全部混乱了。
那么,我的问题是,如果不是在Program Files中,我应该将此文件存储在哪里?我是否应该将其放在APPDATA中,并制作一个小实用程序,在出现问题时自动将其电子邮件发送给我们?或者我可以将其留在Program Files中,但更改某些特定的权限或注册表键以使其正常运行?