2011-08-25 15 views
18

मैं एक एमवीसी 3 प्रोजेक्ट का निर्माण कर रहा हूं जिसके लिए प्रोजेक्ट के \bin\ फ़ोल्डर में बैठे असेंबली में नियंत्रक में पथ द्वारा संदर्भ की आवश्यकता होती है।एमवीसी 3 सापेक्ष पथ ./bin/

क्या कोई मुझे \bin\ फ़ोल्डर के सापेक्ष पथ बनाने के लिए सही दिशा में इंगित कर सकता है?

वीएस 2010 में डीबग मोड में प्रोजेक्ट को चलाने से वर्तमान निर्देशिका C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\10.0 हो जाती है, इसलिए .\bin\ का उपयोग उस पथ में bin फ़ोल्डर की तलाश में करता है।

धन्यवाद

उत्तर

39

आप इस जानकारी प्राप्त करने के लिए वर्तमान appdomain इस्तेमाल कर सकते हैं।

// 1) get current directory for this loaded assembly 
// 2) combine path to get \bin folder 
var path = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "bin"); 
+0

पहली बार काम किया! बहुत धन्यवाद – AndyBursh

+0

धन्यवाद, एक जीवन बचतकर्ता – Cohen

8

चूंकि आप एक नियंत्रक में हैं आप HttpServerUtilityBase का एक उदाहरण है, जो एक MapPath विधि को उजागर करता है के लिए उपयोग किया:

var binDirectoryPath = Server.MapPath("~/bin"); 

यह है तुच्छता इकाई परीक्षण योग्य होने का अतिरिक्त लाभ, MapPath के बाद से विधि आभासी है और मजाक किया जा सकता है।

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