12

默认设置存储在:C:\Documents and Settings\\Local Settings\Application Data\<Project Name>

如何将此路径更改为应用程序目录。我也不想为不同的用户提供不同的文件。如何使设置全局化?

我试图将设置的范围更改为“应用程序”,但我无法在运行时更改它们。

4

3 回答 3

13

使用您不能使用的默认内置行为!

问:为什么路径如此模糊?有没有办法改变/定制它?

A:路径构建算法在安全性、隔离性和健壮性方面必须满足一定的严格要求。虽然我们试图通过使用友好的、应用程序提供的字符串来使路径尽可能容易被发现,但不可能在不遇到与其他应用程序冲突、欺骗等问题的情况下保持路径完全简单。

LocalFileSettingsProvider 不提供更改存储设置的文件的方法。请注意,提供者本身并不首先确定配置文件的位置——它是配置系统。如果出于某种原因需要将设置存储在不同的位置,推荐的方法是编写自己的 SettingsProvider。这实现起来相当简单,您可以在 .NET 2.0 SDK 中找到演示如何执行此操作的示例。但是请记住,您可能会遇到上述相同的隔离问题。

我同意罗伯特哈维的回答自己做,或者写一个自定义设置提供程序。

于 2010-03-25T21:07:09.137 回答
0

您始终可以读写自己的XML 配置文件

于 2010-03-25T19:44:00.613 回答
0

以编程方式更改所有用户的设置存在困难(因为它们来自 exe.config 文件,该文件通常位于 Program Files 中,因此在现代操作系统中被保护免受写访问)。您可以尝试在应用程序范围内进行设置,然后使用ConfigurationManager来弄乱配置文件,类似于此问题的解决方案。

于 2010-03-25T20:08:59.723 回答