'응용 프로그램 이름'을 정의하는 방법에 따라 다릅니다.
Application.ExecutablePath
은 실행 파일 이름을 포함하여 응용 프로그램을 시작한 실행 파일의 경로를 반환합니다. 즉, 누군가가 파일 이름을 변경하면 값이 변경됩니다.
Assembly.GetEntryAssembly().GetName().Name
은 어셈블리의 단순한 이름을 반환합니다. 일반적으로 어셈블리 매니 페스트 파일의 파일 이름에서 확장자를 뺀 것입니다.
따라서 GetName(). Name은 더 친숙 해 보입니다.
더 빠를수록 잘 모르겠습니다. 나는 GetName()에서 Reflection이 필요하기 때문에 ExecutablePath가 GetName()보다 빠르다고 추정하지만 이것은 측정되어야한다.
편집 :이 콘솔 응용 프로그램을 구축하여 실행 한 후 Windows 파일 탐색기를 사용하여 실행 파일 이름을 이름을 변경하려고하면 이름이 바뀐 실행에 더블 클릭으로 직접 다시 실행
보십시오.
ExecutablePath 변경 사항을 반영, 어셈블리 이름, 심지어 거기에 같은
using System;
using System.Reflection;
using System.Windows.Forms;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Assembly.GetEntryAssembly().GetName().Name);
Console.WriteLine(Application.ExecutablePath);
Console.ReadLine();
}
}
}
"응용 프로그램 이름"이 의미하는 바를 추측하기 어렵습니다. 두 파일 모두 EXE * 파일 이름 *을 반환합니다. 프로세스 이름과 동일합니다. –
@HansPassant 오, 내 제품의 주요 이름을 의미합니다. 예를 들어 MS Word의 경우 "WINWORD"가 아니라 "Microsoft Word"입니다. 제 경우에는 어셈블리 이름으로 응용 프로그램 속성에 하드 코드 된 이름입니다. 그것을 얻기위한 접근 방법은 무엇입니까? – nawfal