出于测试和调试目的,我只是硬编码了我的应用程序将使用的文本文件的文件路径,例如
const string CONFIG_FILE_PATH = @"C:\myconfigfile.txt";
但我不认为将它保留在Beta / Release版本中是个好主意。
所以我想知道,保存这些将由应用程序使用/读取的配置文件的最佳位置是什么?有什么建议?
非常感谢。
答案 0 :(得分:6)
为什么不在项目的“设置”部分保存字符串?在解决方案资源管理器中右键单击您的项目,选择“属性”,转到“设置”部分,然后使用文件路径添加新字符串。然后,在您的代码中,您可以像这样访问它:
using ProjectName.Properties;
var path = Settings.Default.MySetting;
更改设置:
Settings.Default.MySetting = newPath;
Settings.Default.Save();
答案 1 :(得分:0)
与可执行文件位于同一文件夹中。
但是你应该考虑使用一个Settings类(你可以阅读更多here)。 Visual Studio可以在app.config文件中的某个部分周围自动创建强类型包装器。 这些设置存储在与可执行文件相同的文件中,但可以在每个用户的用户配置文件中的匹配文件中覆盖(并从应用程序中保存)。
答案 2 :(得分:0)
另一个选项:如果测试配置文件与可执行文件并列,您可以将“现有项目...”添加到项目中,然后将其属性更改为“始终复制”或“如果更新则复制” ”。在调试期间,可执行文件应该能够在其当前工作目录中找到配置的副本。
当需要进行大量测试时,这不是一个有用的解决方案。
答案 3 :(得分:0)
对于设置,我当然会使用app.config文件。这是Microsoft提出的,除此之外,它几乎是处理应用程序设置的最简单方法。
对于其他文件,我建议使用应用程序本地或漫游设置路径,具体取决于天气,您只需要本地数据。对于紧凑的本地数据库,我倾向于使用这种方法。 Albin建议的应用程序目录是一个坏主意。您无法确定该用户是否实际上被允许写入该目录中的该目录和/或文件(即该应用程序是由具有提升权限的管理员预先安装的。)
要获取本地路径的位置,请使用
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)
和漫游路径
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming)
有关Windows用户配置文件的更多信息(例如,不同版本的Windows中的实际路径,您可以在此处找到:http://msdn.microsoft.com/en-us/library/aa372123.aspx