Tùy thuộc vào cách bạn xác định 'tên ứng dụng'.
Application.ExecutablePath
trả về đường dẫn cho tệp thi hành đã khởi động ứng dụng, bao gồm cả tên thực thi, điều này có nghĩa là nếu ai đó đổi tên tệp thì giá trị thay đổi.
Assembly.GetEntryAssembly().GetName().Name
trả về tên đơn giản của hội đồng. Thông thường, nhưng không nhất thiết phải là tên tệp của tệp kê khai của hội đồng, trừ phần mở rộng của nó
Vì vậy, tên GetName().
Để có tốc độ nhanh hơn, tôi không biết. Tôi đoán rằng ExecutablePath nhanh hơn GetName() vì trong GetName() yêu cầu Reflection, nhưng điều này nên được đo.
EDIT:
Cố gắng để xây dựng ứng dụng giao diện điều khiển này, chạy nó và sau đó cố gắng đổi tên tập tin thực thi bằng cách sử dụng Windows File Explorer, chạy lại trực tiếp với kích đúp vào tập tin thực thi đổi tên.
Các ExecutablePath phản ánh sự thay đổi, tên hội vẫn là như nhau
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();
}
}
}
Khó đoán ý bạn là gì bởi "tên ứng dụng", ngữ cảnh quan trọng. Cả hai sẽ trả về tên tập tin EXE * *. Tương tự như tên quy trình. –
@ HansPassant oh, ý tôi là tên chính của sản phẩm của tôi. Ví dụ cho MS Word, nó là "Microsoft Word" và không phải "WINWORD". Trong trường hợp của tôi, cái tên mà tôi đã mã hóa cứng trong Thuộc tính ứng dụng dưới dạng Tên hội. Cách tiếp cận để đạt được điều đó là gì? – nawfal