背景:我有一些应用程序数据。即数据库,来重要的配置文件。此数据对于应用程序启动至关重要,否则将退出。
问题:我应该在哪里存储这些数据。即在哪个文件夹和在哪里。现在(这是错误的)它存储在 Debug/App_Data 的文件夹中。但是在 git 中引起问题,当我们发布应用程序时找不到数据。那么我们可以在哪里存储这个文件夹呢?
当前结构是“WpfApplication2\WpfApplication2\bin\Debug”
这些文件需要在应用程序启动时存在。所以他们需要成为应用程序本身的一部分。
背景:我有一些应用程序数据。即数据库,来重要的配置文件。此数据对于应用程序启动至关重要,否则将退出。
问题:我应该在哪里存储这些数据。即在哪个文件夹和在哪里。现在(这是错误的)它存储在 Debug/App_Data 的文件夹中。但是在 git 中引起问题,当我们发布应用程序时找不到数据。那么我们可以在哪里存储这个文件夹呢?
当前结构是“WpfApplication2\WpfApplication2\bin\Debug”
这些文件需要在应用程序启动时存在。所以他们需要成为应用程序本身的一部分。
建议使用:
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
将这些文件包含到您的项目中并将属性设置Copy to Output directory为Copy always
您的 App.config 应该位于 .NET 桌面应用程序的正常位置:它应该是yourApplication .exe.config,位于与 .exe 相同的文件夹中。