Zależy od tego, jak zdefiniujesz "nazwę aplikacji".
Application.ExecutablePath
zwraca ścieżkę do pliku wykonywalnego, który uruchomił aplikację, łącznie z nazwą pliku wykonywalnego, co oznacza, że jeśli ktoś zmieni nazwę pliku, wartość zmieni się.
Assembly.GetEntryAssembly().GetName().Name
zwraca prostą nazwę zespołu. Jest to zwykle, ale niekoniecznie, nazwa pliku manifestu zespołu, bez jego rozszerzenia
Tak więc nazwa GetName(). Wydaje się bardziej prawdopodobna.
Dla szybszego, nie wiem. Zakładam, że ExecutablePath jest szybszy niż GetName(), ponieważ w GetName() wymaga Reflection, ale należy to zmierzyć.
EDIT:
Spróbuj zbudować aplikację konsoli, uruchom go, a następnie spróbuj zmienić nazwę nazwa pliku wykonywalnego za pomocą Eksploratora plików systemu Windows, uruchom ponownie bezpośrednio z podwójnym kliknięciem na zmienionej nazwie pliku wykonywalnego.
ExecutablePath odzwierciedla zmianę, nazwa Zgromadzenie jest wciąż ten sam
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();
}
}
}
Trudno odgadnąć, co masz na myśli przez "nazwę aplikacji", kontekst ma znaczenie. Oba zwrócą nazwę pliku * EXE *. To samo, co nazwa procesu. –
@HansPassant oh, mam na myśli główną nazwę mojego produktu. Na przykład dla MS Word, jest to "Microsoft Word", a nie "WINWORD". W moim przypadku nazwa, którą zakodowałam w Właściwości aplikacji jako Nazwa zespołu. Jakie byłoby podejście do tego? – nawfal