Depende de cómo se defina 'nombre de la aplicación'.
Application.ExecutablePath
devuelve la ruta del archivo ejecutable que inició la aplicación, incluido el nombre del ejecutable, esto significa que si alguien cambia el nombre del archivo, el valor cambia.
Assembly.GetEntryAssembly().GetName().Name
devuelve el nombre simple del conjunto. Este es generalmente, pero no necesariamente, el nombre de archivo del archivo de manifiesto del ensamblado, menos su extensión
Por lo tanto, el nombre de GetName(). Parece más affidable.
Para la más rápida, no sé. Supongo que ExecutablePath es más rápido que GetName() porque en GetName() requiere Reflection, pero esto debe medirse.
EDIT:
Pruebe a generar esta aplicación de consola, ejecutarlo y luego tratar de cambiar el nombre del nombre del archivo ejecutable utilizando el Explorador de archivos de Windows, ejecute de nuevo directamente con el doble clic sobre el ejecutable renombrado.
El ExecutablePath refleja el cambio, el nombre de la Asamblea sigue siendo el mismo
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();
}
}
}
Es difícil adivinar a qué se refiere con "nombre de la aplicación", el contexto es importante. Ambos devolverán el nombre de archivo * EXE *. Lo mismo que el nombre del proceso. –
@HansPassant oh, me refiero al nombre principal de mi producto. Por ejemplo, para MS Word, es "Microsoft Word" y no "WINWORD". En mi caso, ese nombre que codifiqué en Application Properties como Assembly Name. ¿Cuál sería el enfoque para conseguir eso? – nawfal