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

本文关键字:WPF 何处 存储 配置文件 应用程序 我应该 | 更新日期: 2023-09-27 18:20:19

背景:我有一些应用程序数据。即数据库,来了重要的配置文件。这些数据对于应用程序的启动至关重要,否则它将退出。

问题:我应该将这些数据存储在哪里。即在哪个文件夹和哪里。现在(这是错误的)它存储在Debug/App_Data中的一个文件夹中。但是在git中引起了问题,当我们发布应用程序时,找不到数据。那么我们可以把这个文件夹存放在哪里呢?

当前结构为"WpfApplication2''WpfApplication2''bin''Debug"

这些文件需要在应用程序启动时出现。因此,它们需要成为应用程序本身的一部分

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

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

建议使用:

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

您可以在中保存应用程序特定的文件

Path.Combine(Environment.GetFolderPath(
    Environment.SpecialFolder.LocalApplicationData),
    Path.GetFileNameWithoutExtension(AppDomain.CurrentDomain.FriendlyName));

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

编辑:我记得我在.NET 3.0中的WPF应用程序中使用过独立存储(我想):

隔离存储简介

执行独立存储任务

您的App.config应该位于.NET桌面应用程序的正常位置:它应该是yourApplication.exe.config,位于与.exe.

相同的文件夹中