【发布时间】:2011-01-18 09:53:53
【问题描述】:
我正在为 Windows 窗体应用程序使用 ClickOnce 部署,并且我需要基于计算机的配置信息,这些信息在部署和用户配置文件中持续存在。因此,按用户配置没有帮助。我还希望配置文件可以通过文本编辑器在每台机器上众所周知的位置(众所周知,即组织)轻松访问。
我遇到的问题是 ClickOnce 在每次部署时都会覆盖 app.config。我知道 configsource 属性,但据我了解,目标文件必须位于应用程序的路径中 - 这意味着我无法有效地控制位置。
因此,我为要保留的数据创建了一个类,并在我想要的位置对其进行序列化/反序列化。这一切都很好,除了如果文件不存在我正在创建它(使用 XmlSerializer 和 TextWriter)。这里的问题是,在创建应用程序时运行应用程序的用户成为唯一可以访问它的用户。除非我手动向更广泛的 AD 组授予权限,否则后续用户没有权限。即使这样也很好,除了我不想在第一次安装时触摸每台计算机。
那么有没有一种好方法可以在创建文件时以编程方式设置权限,或者我是否应该重新考虑我的设计,因为我错过了有关内置配置功能的一些内容?
编辑:查看 Application.CommonAppDataPath,但它为每个版本的应用程序维护一个文件夹,这意味着每个新部署都重新开始。
【问题讨论】:
标签: .net winforms configuration configuration-files