我有一个MyProgram.EXE
引用Utilities程序集的控制台应用程序().
在我的Utilities程序集中,我有以下代码:
Dim asm As Assembly = Assembly.GetExecutingAssembly() Dim location As String = asm.Location Dim appName As String = System.IO.Path.GetDirectoryName(location) Conole.WriteLine("AppName is: {0}", appName)
当我打电话给它时MyProgram.EXE
,我会收到" AppName is: Utilities.dll
"
我想要的是" AppName is: MyProgram.EXE
"
我究竟做错了什么?
GetEntryAssembly()
而是使用来获取包含入口点的程序集.
更好的方法是使用System.Environment.CommandLine
属性.
特别:
Dim location As String = System.Environment.GetCommandLineArgs()(0) Dim appName As String = System.IO.Path.GetFileName(location) Conole.WriteLine("AppName is: {0}", appName)
顺便说一句,你想用GetFileName
而不是GetDirectoryName
既然是你想要的VB.NET,你可以从'My'命名空间轻松提取这些信息,如下所示:
My.Application.Info.AssemblyName