c# - संदर्भित डीएलएल में सी#से असेंबली नाम निष्पादित करें




.net (6)

यदि आप वर्तमान ऐपडोमेन की कॉन्फ़िग फाइल प्राप्त करना चाहते हैं, तो आपको बस इतना करना होगा:

ConfigurationManager.AppSettings ....

(इस प्रणाली के लिए एक संदर्भ की आवश्यकता है। पाठ्यक्रम के संयोजन)।

आपके प्रश्न का उत्तर देने के लिए, आप इसे रे के रूप में कर सकते हैं (या Assembly.GetExecutingAssembly().FullName उपयोग करें Assembly.GetExecutingAssembly().FullName )), लेकिन मुझे लगता है कि ConfigurationManager प्रबंधक का उपयोग करके इस समस्या का समाधान आसान है।

सी # में एक संदर्भित कक्षा पुस्तकालय से निष्पादन विधानसभा के अनुप्रयोग नाम (अर्थात MyApplication.exe) प्राप्त करने का सबसे अच्छा तरीका क्या है?

संदर्भित DLL के लिए कुछ ऐप सेटिंग चर को पुनर्प्राप्त करने के लिए मुझे एप्लिकेशन के ऐप। कॉन्फ़िग को खोलना होगा।


संस्करणों के बिना सटीक नाम प्राप्त करने के लिए, आदि। उपयोग करें:

string appName = Assembly.GetEntryAssembly().GetName().Name;

.NET v1.1 और बाद के साथ काम करता है।


यदि आप (और प्रदर्शन) संस्करण संख्या को पढ़ना चाहते हैं:

  Assembly ass = System.Reflection.Assembly.GetExecutingAssembly();
  AssemblyName assname = ass.GetName();

  Version ver=assname.Version;

आवेदन में कहीं न कहीं (अर्थात विंडोज़ फॉर्म में शीर्षक ब्लॉक)

 this.Text = "Your title    Version " + ver;

प्रश्न शीर्षक का उत्तर पाने के लिए:

// Full-name, e.g. MyApplication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
string exeAssembly = Assembly.GetEntryAssembly().FullName;

// or just the "assembly name" part (e.g. "MyApplication")
string exeAssemblyName = Assembly.GetEntryAssembly().GetName().Name;

जैसा कि @ बैन द्वारा वर्णित है, क्योंकि आप कॉन्फ़िगरेशन जानकारी प्राप्त करना चाहते हैं, कॉन्फ़िगरेशन प्रबंधक वर्ग का उपयोग करें।


यदि आप माता-पिता EXE का नाम चाहते हैं और संदर्भित डीएलएल असेंबली नहीं चाहते हैं - आपको इसका उपयोग करना होगा:

Assembly.GetEntryAssembly().GetName().Name

यह EXE नाम वापस करेगा (शून्य से .EXE भाग)।

ओएपी के सवाल के मुताबिक GetExecutingAssembly () का उपयोग सही नहीं है (पहले पैराग्राफ!) क्योंकि यह DLL नाम वापस करेगा।


कक्षा उदाहरण से एक विधानसभा के संक्षिप्त नाम के लिए:

Me.GetType ().Assembly.GetName().Name




.net