我的一个类,执行一些指令需要知道它的位置(作为绝对路径)。我正在使用一个天真的Directory.GetCurrentDirectory(),直到我注意到当用户实际上没有从类所在的目录执行时,事情就搞乱了。
我怎么能得到它?到目前为止,我的谷歌搜索是不成熟的...... :(
PS:我打算将这个类作为DLL,没有COM或任何花哨的东西发布,只是一个基本的DLL。这会改变任何规则吗?
答案 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