可能重复:
Getting the path of the current assembly
C#: How do I get the path of the assembly the code is in?
使用VB 2008,如何从内部获取正在运行的.EXE的文件名?
编辑:这适用于控制台应用,因此Application.ExecutablePath
无效。
答案 0 :(得分:18)
有几种方法:
Application.ExecutablePath
或
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
或
System.Reflection.Assembly.GetExecutingAssembly().Location
答案 1 :(得分:4)
已经回答before。
您可以在代码中的任何位置使用由原始EXE加载的程序集。您也可能没有对Application单例的引用,因此使用Assembly类是最好的选择。
最安全的方式是Assembly.GetEntryAssembly()。位置获取当前程序集所在文件系统的位置。如果是shadow copied,则这是影子复制位置。如果它是click-once部署的,那么这是sandbox区域中文件的疯狂路径。
装配的原始位置将位于Assembly.GetEntryAssembly().Codebase
答案 2 :(得分:1)
Process.GetCurrentProcess()。MainModule
修改的
另一种方法可能是使用Environment.GetCommandLineArgs()[0],但我更喜欢使用Process。
答案 3 :(得分:0)
您应该在酒店中找到它:Application.ExecutablePath