2009-04-22 14 views
22

मैं चारों ओर देख रहा हूं लेकिन मुझे इस समस्या का हल नहीं मिला है: मैं एक क्लास लाइब्रेरी बनाना चाहता हूं जिसमें कॉन्फ़िगरेशन नामक उप-निर्देशिका के तहत कॉन्फ़िगरेशन फ़ाइल हो। मैं चाहता हूं कि कक्षा पुस्तकालय कहीं भी तैनात किया जाए और मैं चाहता हूं कि यह अपनी कॉन्फ़िगरेशन फाइलों को अपने स्थान को जानकर ढूंढ सके।कक्षा पुस्तकालय पर वर्तमान निर्देशिका कैसे प्राप्त करें?

Assembly.GetExecutingAssembly().Location के साथ पिछले प्रयासों ने काम नहीं किया।
यह अस्थायी स्थानों वापसी होगी ऐसी

C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\7c00e0a3\38789d63\assembly\dl3\9c0a23ff\18fb5feb_6ac3c901

वांछित

bin/Configuration पथ के बजाय

के रूप में।

तो:

  1. एक वर्ग पुस्तकालय डिस्क पर अपने स्वयं के स्थान के बारे में पता हो सकता है?
  2. मैं कैसे इस कार्यशीलता के लिए witting परीक्षण स्क्रिप्ट के बारे में जाना होगा, क्योंकि यह कैसे आप अनुप्रयोग
+0

एप्लिकेशन की app.config फ़ाइल में कॉन्फ़िगरेशन शामिल क्यों नहीं करें और अपने क्लास पुस्तकालयों में कॉन्फ़िगरेशन मैनेजर का उपयोग क्यों करें? –

+0

आप अपने प्रश्न को स्पष्ट करना चाहते हैं (बाद में बेहतर खोज योग्यता के लिए) कि यह एएसपी.नेट है। डेस्कटॉप अनुप्रयोगों के लिए, GetExecutingAssembly() बस ठीक काम करता है। – Stu

+1

@ जस्टिन: मैं क्लास लाइब्रेरी को कॉलर एप्लिकेशन से स्वतंत्र होना चाहता हूं। @ स्टू: दोनों। मैं एक कक्षा पुस्तकालय बनाना चाहता हूं जिसका उपयोग कंसोल ऐप्स और वेब ऐप्स दोनों के लिए किया जा सकता है। कक्षा पुस्तकालय को इस परवाह नहीं करना चाहिए कि इसे किसने बुलाया है। – nandos

उत्तर

33

चलाने (वी.एस. अंदर डीबगिंग, आईआईएस पर तैनाती, आदि) यह काम करना चाहिए पर आधारित है कि निर्देशिका परिवर्तन लगता है -

string assemblyFile = (
    new System.Uri(Assembly.GetExecutingAssembly().CodeBase) 
).AbsolutePath; 
+0

होगा: System.Reflection.Assembly.GetExecutingAssembly()। स्थान एक ही जानकारी नहीं दे रहा है ...? – dba

+1

@ डीबीए जब छाया प्रतिलिपि नहीं है। इसे यूनिट परीक्षण में आज़माएं, उदाहरण के लिए, और यह गलत होगा –

संबंधित मुद्दे