2012-02-06 113 views

回答

11

根据MSDN(App Object Changes in Visual Basic .NET),更换为两个是

System.Reflection.Assembly.GetExecutingAssembly().Location 

它包含完整路径(App.Path)以及文件名(App.EXEName)。

' Import System.Reflection and System.IO at the top of your class file 
Dim location = Assembly.GetExecutingAssembly().Location 
Dim appPath = Path.GetDirectoryName(location)  ' C:\Some\Directory 
Dim appName = Path.GetFileName(location)   ' MyLibrary.DLL 

UPDATE(感谢评论者):可以使用从Path类的辅助方法拆分信息,如果你是在一个DLL执行此代码,你想要的名称那个叫EXE的DLL,你需要用GetEntryAssembly而不是GetExecutingAssembly。请注意,如果您的DLL是从非托管EXE调用的,则GetEntryAssembly可能会返回Nothing

+0

你没有得到那个权利,他想要的是EXE路径,而不是DLL路径。使用Assembly.GetEntryAssembly()代替。 – 2012-02-06 16:53:25

+0

我在使用DLL我认为我需要Assembly.GetEntryAssembly() – 2012-02-06 16:59:39

+0

@HansPassant:谢谢,修正! – Heinzi 2012-02-06 17:21:44

相关问题