如何在C#中检索当前class / dll所在的目录?

时间:2012-02-13 16:00:44

标签: c#

我的一个类,执行一些指令需要知道它的位置(作为绝对路径)。我正在使用一个天真的Directory.GetCurrentDirectory(),直到我注意到当用户实际上没有从类所在的目录执行时,事情就搞乱了。

我怎么能得到它?到目前为止,我的谷歌搜索是不成熟的...... :(

PS:我打算将这个类作为DLL,没有COM或任何花哨的东西发布,只是一个基本的DLL。这会改变任何规则吗?

4 个答案:

答案 0 :(得分:5)

string path = typeof(YourClass).Assembly.Location; 
string directory = Path.GetDirectoryName(path); 

应该这样做。

答案 1 :(得分:5)

您可以使用:

string path = GetType().Assembly.GetModules(false)[0].FullyQualifiedName;

(假设你只有一个模块,很可能。)

答案 2 :(得分:1)

您可以使用:

System.Reflection.Assembly.GetExecutingAssembly().Location

答案 3 :(得分:0)

从汇编中获取

Assembly.GetExecutingAssembly().Location