如何获取类库的当前目录?

时间:2009-04-22 17:03:57

标签: c# asp.net path filepath configuration-files

我一直在寻找,但我还没有找到解决此问题的方法:我想创建一个类库,该类库在名为Configuration的子目录下有一个配置文件。我希望将该类库部署到任何地方,我希望它通过了解自己的位置来查找其配置文件。

Assembly.GetExecutingAssembly().Location之前的尝试无效 它会返回临时位置,例如

C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\7c00e0a3\38789d63\assembly\dl3\9c0a23ff\18fb5feb_6ac3c901

而不是所需的

bin/Configuration路径。

所以:

  1. 类库可以知道它自己在磁盘上的位置吗?
  2. 如何根据您运行应用程序的方式(在VS内部调试,在IIS上部署等)更改目录,因此我将如何为此功能配合测试脚本?

3 个答案:

答案 0 :(得分:39)

这应该有效 -

string assemblyFile = (
    new System.Uri(Assembly.GetExecutingAssembly().CodeBase)
).AbsolutePath;

答案 1 :(得分:2)

以下代码对我有用,它可以获取Images文件夹类库文件的物理路径。

string fullFilePath = Path.Combine((new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath.Split(new string[] { "/bin" }, StringSplitOptions.None)[0]
                          , "@/Images/test.png");

我希望它将对某人有所帮助。

答案 2 :(得分:0)

旧问题,但为新观众解答。 只需访问文件。我已经尝试过通过动态设置目录的多种方法,但是没有任何积极的结果。 但另一方面,我看到它会自动访问其目录/子目录中的文件,而无需显式调用任何方法来获取当前目录。

[我的案子] 我必须访问与类库一起存储的配置文件,并且无需指定或设置地址就可以直接访问它。

相关问题