मैं एक जटिल समाधान है, जिसमें टेस्ट प्रोजेक्ट्स से अलग 10 परियोजनाएं शामिल हैं। यह वितरित अनुप्रयोगों का एक नेटवर्क है & सेवाएं जो रिमोटिंग का उपयोग करके संवाद करती हैं; इसलिए उचित संदर्भित असेंबली (& संस्करण) होने के लिए महत्वपूर्ण है। यही कारण है कि मैं पूरी चीज को संकलित करना चाहता हूं और एक निर्माण में स्किंक-लपेटा चाहता हूं।पूरे समाधान का निर्माण करें, लेकिन केवल एक परियोजना के लिए वैश्विक सशर्त संकलन प्रतीक जोड़ें
अनुप्रयोगों में से एक एक डेमो/विश्लेषण-उपकरण है जो दूसरे के उपप्रोसेसर को चलाता है - बहुत बड़ा - उपयोगकर्ता के इनपुट के आधार पर एप्लिकेशन और परिणाम प्रदर्शित करता है; इस तरह इंजीनियरों के पास "बड़ी गणना" के लिए अपनी सेटिंग्स को ट्विक करने में मदद करने के लिए एक उपकरण होता है। जाहिर है कि उपप्रक्रिया एक और विधानसभा में निहित है, और इंजीनियरों के लिए प्रस्तुत ते परिणाम का एक बड़ा हिस्सा द्वारा
#if ENABLE_TRACE_MATCHING
Trace.WriteLine("Some engineering output");
#endif
मेरे समस्या उत्पन्न होता है कि इस परियोजना सेटिंग्स में सशर्त संकलन प्रतीक है कि परियोजना के विधानसभा तक सीमित हैं, और क्या है संदर्भित असेंबली पर प्रचार नहीं करते हैं। मैं कैसे इस तरह से कि सभी परियोजनाओं के बिना ENABLE_TRACE_MATCHING परिभाषित किया जा रहा का निर्माण किया जाएगा में अपने निर्माण कॉन्फ़िगर कर सकते हैं, एक डिबग/विश्लेषण एप्लिकेशन के अंतर्गत परियोजना जहां सभी संदर्भित परियोजनाओं/विधानसभाओं ENABLE_TRACE_MATCHING साथ संकलित किया जाना चाहिए किया जा रहा परिभाषित
के अलावामैं #if DEBUG द्वारा #if ENABLE_TRACE_MATCHING को भी प्रतिस्थापित नहीं कर सकता, क्योंकि इससे हमारे इंजीनियरों को संभालने के बारे में पता नहीं चलेगा।
अग्रिम धन्यवाद।
पीएस: अगर आपको लगता है कि मेरा कोड गंध करता है, तो मैं सहमत हूं। इसके अतिरिक्त: यह ज्यादातर मेरा कोड नहीं है;)
मैं उल्लेख करना भूल गया – user588939