默认情况下,设置存储在以下位置:C:\Documents and Settings\\Local Settings\Application Data\<项目名称>
我该如何将此路径更改为应用程序目录?我也不想为不同的用户创建不同的文件。如何使设置全局?
我尝试将设置的范围更改为“应用程序”,但然后我无法在运行时更改它们。
默认情况下,设置存储在以下位置:C:\Documents and Settings\\Local Settings\Application Data\<项目名称>
我该如何将此路径更改为应用程序目录?我也不想为不同的用户创建不同的文件。如何使设置全局?
我尝试将设置的范围更改为“应用程序”,但然后我无法在运行时更改它们。
问:为什么路径如此模糊?有没有办法改变/定制它?
答:路径构造算法必须满足安全性、隔离性和稳健性等严格要求。虽然我们试图通过使用友好的应用程序提供的字符串使路径尽可能易于发现,但是完全简化路径而不会遇到与其他应用程序的冲突、欺骗等问题是不可能的。
LocalFileSettingsProvider不提供更改存储设置的文件的方法。请注意,提供程序本身并不确定首先配置文件的位置-它是配置系统。如果由于某种原因需要将设置存储在不同的位置,则建议编写自己的SettingsProvider。这很容易实现,您可以在.NET 2.0 SDK中找到展示如何做到这一点的示例。但是请记住,您可能会遇到上述隔离问题。
我同意Robert Harvey的回答,要么自己动手,要么编写自定义设置提供程序。
在编程中,更改所有用户的设置存在困难(因为它们来自exe.config文件,该文件通常位于Program Files中,因此在现代操作系统中受到写访问保护)。您可以尝试使设置应用程序范围内,但然后使用ConfigurationManager
来处理配置文件,类似于this question的解决方案。