【问题标题】:Is there a way to tell .NET where to look for the user settings file?有没有办法告诉 .NET 在哪里寻找用户设置文件?
【发布时间】:2025-11-21 23:00:01
【问题描述】:

我们的应用程序基本上会启动多个实例,但它们需要有单独的用户设置。我们目前为此使用“用户设置”,它适用于单个实例(每个 Windows 用户),但我们希望能够通过命令行传入的设置路径启动多个实例。有没有办法通过内置的 .NET 设置来做到这一点,还是我们必须自己动手?

【问题讨论】:

    标签: .net multiple-instances settings


    【解决方案1】:

    LocalFileSettingsProvider 类,一个使用用户设置管理文件的类,是完全不可能调整的。不管是谁写的,一定是因为安全问题而瘫痪了。也许不是没有道理的。

    如果您想坚持使用 System.Configuration,那么您需要实现自己的提供程序。可能最好的方法是从RegistrySettingsProvider sample 开始。它不会帮助您正确处理文件,但至少您将有一些东西可以构建。多看几眼 Reflector 会有所帮助。

    【讨论】:

      【解决方案2】:

      我建议开发一个可以处理应用设置并接受文件名的类。我必须为需要应用程序设置的 DLL 执行此操作,如果您想将设置存储在非本地位置(例如网络上的单个位置),它也会有所帮助。

      它将为您提供更多的灵活性 - 绝对值得投资!

      【讨论】:

        【解决方案3】:

        .Net 有一个配置提供程序 API。 app.config 只是该 API 的预定义实现。您应该考虑使用 API 来扩展内置 API,或创建自己的 API。

        【讨论】:

          【解决方案4】:

          我建议将配置信息存储在数据库中并根据用户进行读取。任何情况下您都必须维护用户特定信息的不同副本。加载从数据库读取的应用程序并缓存所有设置。

          用于检索信息的用户用户个性化和配置文件 API。更新数据库中的信息非常容易,而不是处理位于用户系统中的文件。

          【讨论】:

            【解决方案5】:

            有一个有趣的CodeProject article 有一个自定义设置提供程序。您只需对代码稍作调整,即可将设置保存并加载到您提供的文件位置。

            【讨论】: