我应该在哪里将我的应用程序特定配置文件存储在WPF中

时间:2013-06-28 10:08:06

标签: c# wpf directory-structure

后台:我有一些应用数据。即数据库,来自重要的配置文件。 这些数据对于应用程序启动其他程序至关重要。

问题:我应该在哪里存储这些数据。即在哪个文件夹和哪里。 现在(这是错误的)它存储在Debug / App_Data的文件夹中。但是在git中导致问题,当我们发布App时,找不到数据。那么我们在哪里可以存储这个文件夹?

现在的结构是“WpfApplication2 \ WpfApplication2 \ bin \ Debug”

应用启动时,这些文件需要存在。所以他们需要成为应用程序本身的一部分。

4 个答案:

答案 0 :(得分:1)

建议使用:

var pathToConfig = Path.Combine( System.Environment.GetFolderPath(
           Environment.SpecialFolder.CommonApplicationData), YOUR_APP_NAME);

在Windows Vista和+机器上,这将以“C:\ ProgramData \ AllUser \ YOUR_APP_NAME”结尾

在Windows XP上“C:\ Document and Settings \ Application Data \ YOUR_APP_NAME”

在这两种情况下,您都可以保证操作系统本身在这些位置具有写入权限,并且它从用户眼中“隐藏”(默认情况下隐藏这两个文件夹)

正如@Athari正确建议的那样:YOUR_APP_NAME应为YOUR_COMPAMY_NAME \ YOUR_APP_NAME

答案 1 :(得分:1)

您可以在

保存特定于应用程序的文件
Path.Combine(Environment.GetFolderPath(
    Environment.SpecialFolder.LocalApplicationData),
    Path.GetFileNameWithoutExtension(AppDomain.CurrentDomain.FriendlyName));

但您也可以使用其他文件夹,例如My Documents

编辑:我记得我在.NET 3.0中的WPF应用程序中使用了隔离存储(我认为):

Introduction to Isolated Storage

Performing Isolated Storage Tasks

答案 2 :(得分:1)

将这些文件包含到您的项目中,并将属性Copy to Output directory设置为Copy always

答案 3 :(得分:0)

您的App.config应该在.NET桌面应用程序的正常位置:它应该是 yourApplication .exe.config与.exe相同的文件夹。