2011-01-13 17 views
5

में डब्लूसीएफ परियोजना का निर्माण करते समय आउटपुट निर्देशिका मेरे पास एक विजुअल स्टूडियो 2010 समाधान है जो डीबग x86 में बनाने के लिए सेट है। विजुअल स्टूडियो इसलिए \ bin \ x86 \ डीबग के आउटपुट पथ को सेट करता है, जो पर्याप्त तार्किक लगता है।विजुअल स्टूडियो

समाधान में लगभग 50 परियोजनाएं हैं; स्टार्ट-अप प्रोजेक्ट एक डब्ल्यूसीएफ परियोजना है।

जब मैं कोई बिल्ड करता हूं, तो मैं उम्मीद करता हूं कि सभी आउटपुट डीएल \ bin \ x86 \ डीबग पर जाएं, क्योंकि यह प्रोजेक्ट सेटिंग्स में सेट है। लेकिन अजीब बात यह है कि, मुझे बिन \ x86 \ Debug और में \ bin में बनाया गया dlls दिखाई देता है। आउटपुट पथ उस निर्देशिका में सेट नहीं होने पर विजुअल स्टूडियो \ bin में किसी भी डीएल को क्यों रखेगा? ऐसा लगता है कि सभी डीएल \ bin \ x86 \ डीबग पर जाते हैं, और सभी डीएलएस स्टार्ट-अप प्रोजेक्ट को छोड़कर \ bin में जाते हैं। कोई विचार यह क्यों करेगा? (हमारे पास अन्य समाधान हैं जो डब्ल्यूसीएफ का उपयोग नहीं करते हैं, और उनके पास यह समस्या नहीं है।)

दूसरी परेशानी यह है कि यदि मैं विजुअल स्टूडियो से सेवा चलाता हूं और फिर वेब ब्राउज़र में अपनी सेवा तक पहुंचने का प्रयास करता हूं, http://localhost:1240/MyService.svc पर जाकर, यह काम नहीं करता है, क्योंकि स्टार्ट-अप प्रोजेक्ट डीएलएल/बिन से गुम है। इसलिए मुझे मैन्युअल रूप से \ bin \ x86 \ Debug से \ bin तक एक डीएलएल प्रतिलिपि बनाना है, ताकि सभी डीएलएस पाए जाते हैं और सेवा सामान्य रूप से चलती है। (हम निश्चित रूप से एक कस्टम पोस्ट-बिल्ड चरण जोड़ सकते हैं जो कॉपी करता है, लेकिन आपको लगता है कि एक बेहतर तरीका होगा!)

डब्ल्यूसीएफ परियोजनाओं पर काम करने वाले आप में से, क्या आप आउटपुट पथ छोड़ते हैं \ bin \ x86 \ डीबग पर? (शायद सेवा को कॉन्फ़िगर करने का कोई तरीका है, उदाहरण के लिए web.config या .svc फ़ाइल में, ताकि यह जान सके कि बाइनरी \ bin \ x86 \ Debug \ bin के बजाय \ binug में हैं?) या आप आउटपुट पथ को बदलते हैं \ bin ताकि आप सीधे विजुअल स्टूडियो से अपनी सेवा चला सकें?

उत्तर

7

यदि आप डब्ल्यूसीएफ होस्टिंग प्रोजेक्ट और गोटो टैब बिल्ड का प्रॉपर्टी पेज खोलते हैं, तो इस टैग के आउटपुट सेक्शन में एक टेक्स्टबॉक्स होता है जिसमें आउटपुट बाइनरी का स्थान होता है।

डब्ल्यूसीएफ परियोजना के लिए बाइनरी को बिल्ड प्रकार (डीबग, रिलीज के रूप में सफल) के बावजूद बिन निर्देशिका में जाना चाहिए। सुनिश्चित करें कि यह मान सही तरीके से कॉन्फ़िगर किया गया है।

प्रत्येक बिल्ड प्रकार \ कॉन्फ़िगरेशन के लिए मान को कॉन्फ़िगर करने की आवश्यकता है।

+0

हां, वह टेक्स्टबॉक्स "आउटपुट पथ" है जो मैं अपनी पोस्ट में बात करता हूं। तो आप कह रहे हैं कि आप इसे बस बिन, कहानी के अंत में सेट करें। अजीब लगता है कि अगर आप इस आउटपुट पथ को बदलते हैं, तो अधिकांश फाइलें अभी भी बिन पर जाती हैं, है ना? – Justin

+1

गैर डब्ल्यूसीएफ परियोजना के लिए डिफ़ॉल्ट आउटपुट पथ बिंदु बिन \\ [BuildConfiguration] फ़ोल्डर में इंगित करता है। चूंकि डब्ल्यूसीएफ सेवा चाहता है कि डीएलएल बिन निर्देशिका में मौजूद हो और किसी भी उप निर्देशिका में नहीं, विजुअल स्टूडियो से बनाए गए डब्ल्यूसीएफ प्रोजेक्ट के लिए डिफ़ॉल्ट प्रोजेक्ट कॉन्फ़िगरेशन बिन फ़ोल्डर है। – Chandermani

+0

यह बिट मुझे कुछ एमवीसी 3 सामान कर रहा है, जहां बाइनरी समाधान कॉन्फ़िगरेशन प्रबंधक सेटिंग्स के आधार पर bin \ x86 \ debug में चला गया। उम्मीद है कि इससे अगले व्यक्ति को घूमने में मदद मिलेगी .... बस साइट आउटपुट को बिन \ – Snowy

-1

यदि आपको किसी भी कारण से, अलग-अलग फ़ोल्डर्स में विभिन्न बिल्ड कॉन्फ़िगरेशन से अलग आउटपुट की आवश्यकता है, तो आप उन्हें निर्दिष्ट कर सकते हैं जैसे आपने पहले किया था और एक पोस्ट बिल्ड इवेंट कमांड लाइन का उपयोग करें जो आपके निर्दिष्ट आउटपुट फ़ोल्डर से बिन तक प्रतिलिपि बनाता है। पसंद:

- untested code - 
    COPY/Y "$(OutDir)\*.*" "$(SolutionDir)$(ProjectName)\bin\" 
    - untested code - 
+1

शायद आपको पोस्ट करने से पहले इसका परीक्षण करना चाहिए? – ForceMagic

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