如何根据“未知”位置的用户选择加载配置文件

时间:2013-10-23 18:25:31

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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