【问题标题】:How to load a config file based on user selection from "unknown" location如何根据“未知”位置的用户选择加载配置文件
【发布时间】:2013-11-02 04:36:56
【问题描述】:

我已经搜索和搜索,但找不到针对我的具体问题的解决方案。我正在更新一个控制台应用程序,该应用程序现在将用于多个客户端。我们已经决定,至少暂时将信息存储在数据库中,将客户端信息存储在配置文件中。每个客户端都有自己的配置文件。我需要知道如何从“未知”位置加载/任何配置文件。我发现的所有示例都希望我放入文件的路径中。在使用我的计算机时,我会知道路径,但是一旦它被推送到其他服务器,文件的路径就会改变。

在这些条件下工作,如何在不知道文件路径的情况下为任何客户端加载配置文件?

编辑:控制台应用程序仅在一台服务器上运行,但它用于访问不同的客户网站并抓取他们的网站。这就是每个客户端都有自己的配置文件的原因。它包含获取和使用他们的网站所需的信息。我们为应用设置了一项任务,以在计时器上运行每个客户端。

【问题讨论】:

  • 两个建议:1.你说你有db。您可以将每个用户的路径存储到配置文件。 2. 您可以在注册表中写入路径(所有用户在同一个地方)。

标签: c# configuration path app-config relative-path


【解决方案1】:

在编写每段代码时要记住它要在另一个文件中使用,比如说包含语句。因此,每个文件都在另一个文件中使用,直到我们到达一个包装文件,它的唯一目的是定义配置文件的位置。应用程序总是会通过这样的包装文件被调用。此包装文件将执行任何必要的操作来确定配置文件的位置并使其可用于包含的文件。如果它认识用户,它可以在表格中查找。这里的关键点是,当您将代码从一个环境移动到另一个环境时,包装文件不会移动。我认为这是一个有用的功能,因为我们不希望每次将代码从一个环境移动到另一个环境时都对其进行编辑。这种方法的另一个优点是它适用于所有环境,甚至是非常有限的环境。例如,假设您只向程序员提供一个文件夹作为沙箱来试验代码。此程序员无权访问 /bin 或 /etc 目录。相反,建议的方法在这种情况下可以正常工作,因为程序员可以在其本地包装文件中的任何位置设置配置文件。这个问题在这里讨论How to organize code so that we can move and update it without having to edit the location of the configuration file?

【讨论】:

    【解决方案2】:

    由于从 bin 文件夹中读取所有内容,因此我查看了属性并将“不复制”更改为“始终复制”以复制到输出目录。现在它将在 bin 文件夹中找到配置文件。而对this question 的回答让我朝着阅读我的配置文件的方向前进。

    【讨论】:

      猜你喜欢
      • 2020-09-04
      • 1970-01-01
      • 2017-06-13
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多