यह निर्भर करता है कि आप 'एप्लिकेशन नाम' को कैसे परिभाषित करते हैं।
Application.ExecutablePath
निष्पादन योग्य फ़ाइल के लिए पथ लौटाता है जिसने निष्पादन योग्य नाम सहित एप्लिकेशन शुरू किया, इसका मतलब है कि अगर कोई फ़ाइल का नाम बदलता है तो मूल्य बदल जाता है।
Assembly.GetEntryAssembly().GetName().Name
असेंबली का सरल नाम देता है। यह आमतौर पर, लेकिन आवश्यक नहीं है, असेंबली की मेनिफेस्ट फ़ाइल का फ़ाइल नाम, इसके विस्तार को घटाएं
तो, GetName()। नाम अधिक भरोसेमंद प्रतीत होता है।
तेजी से, मुझे नहीं पता। मुझे लगता है कि निष्पादन योग्य पाथ GetName() से तेज है क्योंकि 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 * फ़ाइल नाम * वापस कर देंगे। प्रक्रिया नाम के समान ही बात। –
@ हंसपैसेंट ओह, मेरा मतलब है मेरे उत्पाद का मुख्य नाम। उदाहरण के लिए एमएस वर्ड के लिए, यह "माइक्रोसॉफ्ट वर्ड" है और "विनवर्ड" नहीं है। मेरे मामले में, वह नाम जिसे मैंने एप्लिकेशन प्रॉपर्टीज में असेंबली नाम के रूप में हार्डकोड किया है। इसे पाने का दृष्टिकोण क्या होगा? – nawfal