1. 作为嵌入式资源(Embedded Resource)
打包方式:编译时嵌入到程序集(.exe/.dll)内部
访问方式:通过Properties.Resources或ResourceManager访问
特点:
✅ 完全打包进exe,无需额外文件
✅ 防止用户轻易修改
❌ 运行时无法修改内容
❌ 更新需要重新编译程序
适用场景:不变的默认配置、初始数据
- 作为内容文件(Content)
打包方式:作为独立文件与exe一起发布
访问方式:通过相对路径访问(如Application.StartupPath + “\data.json”)
特点:
✅ 可以独立于exe修改
✅ 不需要重新编译即可更新
❌ 容易被用户修改或删除
❌ 需要处理文件路径问题
适用场景:需要与程序分离的配置文件
- 作为应用程序设置(Application Settings)
打包方式:通过Properties/Settings.settings配置
访问方式:通过Properties.Settings.Default访问
特点:
✅ Visual Studio提供设计器支持
✅ 自动处理用户作用域和应用程序作用域
❌ 不适合存储复杂JSON结构
❌ 容量有限
适用场景:简单的键值对配置
- 存储在特殊文件夹中
常见位置:
Application.StartupPath (程序所在目录)
Environment.SpecialFolder.ApplicationData (用户AppData)
Environment.SpecialFolder.LocalApplicationData
特点:
✅ 适合用户特定数据
✅ 有正确的文件读写权限
❌ 需要处理不同系统的路径差异
适用场景:用户个性化设置、动态生成的数据
- 云端存储+本地缓存
实现方式:
内置默认JSON在资源中
运行时从云端下载更新到本地文件
优先使用本地文件,没有则使用资源
特点:
✅ 可以远程更新配置
✅ 离线时仍有默认配置
❌ 需要处理网络连接问题
适用场景:需要远程更新的配置