这似乎是一个简单的问题,但是intergoogles并不友好。
我有一个C#桌面应用程序。某些属性需要根据客户进行自定义,例如每个客户的组织名称,否则这些属性与应用程序的实际功能无关,因此无需编译到其中。
将这些数据从应用程序中提取出来,在VS(2008)中管理并将其部署到客户桌面的最佳/首选方法是什么?
例如,假设我在两个独立的组织中有两个单独的用户,因此他们每个都需要一组单独的设置。我是否只是为每个人创建一个新的app.config文件?我是否必须为每个用户重建安装项目以容纳新的app.config文件?
谢谢
答案 0 :(得分:2)
您可以将该类型的信息存储在App.Config文件,INI文件或目标系统的注册表中。
根据您决定的方法,有许多示例代码可用:
答案 1 :(得分:2)
“应用程序设置”子系统允许您基于每个用户或每个应用程序创建强类型设置。只需右键单击该项目,选择“属性”,然后单击“设置”选项卡。
来自Application Settings Overview:
应用程序设置解决了这两个问 需要通过提供一种简单的方法 存储应用程序作用域和 客户端上的用户范围设置 电脑。使用Visual Studio或 代码编辑器,您为其定义设置 通过指定它的给定属性 名称,数据类型和范围 (申请或用户)。你甚至可以 将相关设置放入命名 组便于使用和阅读。 一旦定义,这些设置是 坚持并读回内存 在运行时自动。一个可插拔的 架构实现了持久性 机制有待改变,但由 默认情况下,本地文件系统是 使用
应用程序设置的工作原理 将数据作为XML保存为不同的 配置(.config)文件, 对应是否设置 是应用程序作用域或用户作用域。 在大多数情况下,应用程序作用域 设置是只读的;因为他们 是程序信息,你会的 通常不需要覆盖它们。 相比之下,用户范围的设置可以 在运行时安全地读写 时间,即使您的应用程序运行 在部分信任下。更多 有关部分信任的信息,请参阅 Windows窗体概述中的安全性。
添加设置时,Visual Studio会在设置类中创建强类型属性。它还在应用程序配置文件中创建一个条目。对于“应用程序”设置,这是设置的实际值。如果您愿意,可以在安装时更改它。对于“用户”设置,这是该设置的默认值。用户可以在运行时更改该值。然后,您可以调用Save方法来保存更改的值。根据用户是否漫游,本地等,用户设置的当前值存储在存储在正确的每用户文件夹中的user.config文件中。
与Windows窗体一起使用时非常好,因为窗体和控件的各种属性可以在设计时绑定到应用程序设置。这意味着当应用程序启动时,这些属性将从设置中获取其初始值。如果值在运行时更改,则设置将更改。然后,您可以在应用程序退出之前保存更改的设置。然后,当应用程序再次启动时,它们将自动使用。这需要很少的代码。
即使这些是为.NET 2.0中的Windows窗体创建的,我也将它们与其他项目类型一起使用,尤其是单元测试项目。当然,在这种情况下,您没有按用户设置。