.net - 获取当前程序集的路径

标签 .net vb.net visual-studio

如何获取当前程序集的路径?我需要从相对于当前程序集 (.dll) 位置的某些路径获取数据。

我以为有人告诉我使用反射命名空间,但我在那里找不到任何东西。

最佳答案

您可以使用:

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

评论中的一些建议是通过 System.Uri.UnescapeDataString 传递它(来自 vvnurmi ) 确保处理任何百分比编码,并使用 Path.GetFullpath (来自 TrueWill ) 确保路径采用标准 Windows 形式(而不是用斜杠代替反斜杠)。以下是您在每个阶段获得的内容的示例:

string s = Assembly.GetExecutingAssembly().CodeBase;
Console.WriteLine("CodeBase: [" + s + "]");
s = (new Uri(s)).AbsolutePath;
Console.WriteLine("AbsolutePath: [" + s + "]");
s = Uri.UnescapeDataString(s);
Console.WriteLine("Unescaped: [" + s + "]");
s = Path.GetFullPath(s);
Console.WriteLine("FullPath: [" + s + "]");

如果我们正在运行,则输出 C:\Temp\Temp App\bin\Debug\TempApp.EXE :

CodeBase: [file:///C:/Temp/Temp App/bin/Debug/TempApp.EXE]
AbsolutePath: [C:/Temp/Temp%20App/bin/Debug/TempApp.EXE]
Unescaped: [C:/Temp/Temp App/bin/Debug/TempApp.EXE]
FullPath: [C:\Temp\Temp App\bin\Debug\TempApp.EXE]

关于.net - 获取当前程序集的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/864484/

相关文章:

.net - .NET 中的时态表达式库

asp.net - 如何下载主题的最新版本 CSS 文件?

asp.net - Visual Studio 2012 - 数据库发布向导已停止?

visual-studio - 是否有一种方法/系统/程序来跟踪编写项目代码的不同阶段和变化?

c# - 检查目标方法可以在 .Net 中抛出的所有可能的异常?

c# - 如何更改 .NET WebClient 对象的超时

c# - 我可以在 .NET 中将类用作变量吗

c# - 如何编写一个vb.net代码来编译C/C++程序?

vb.net - 在VB.NET错误BC42025中,短语 "qualifying expression will not be evaluated"是什么意思?

c# - 相同的 Excel 公式在 Visual Studio C# 中返回不同的结果