7

MyProgram.EXEユーティリティ アセンブリを参照するコンソール アプリケーション ( ) があります。

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"

私は何を間違っていますか?

4

4 に答える 4

14

代わりに使用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

于 2009-01-22T17:19:28.567 に答える
11

質問していたのは VB.NET であるため、以下に示すように、「My」名前空間からこの情報を簡単に抽出できます。

My.Application.Info.AssemblyName
于 2011-07-19T14:47:10.797 に答える