RelatedMSBuild परियोजनाओं, SLN
का उपयोग किए बिना मैं अपने वी.एस. समाधान, BookApp.Web
और BookApp.Domain
में दो परियोजनाओं की है।
BookApp.Web
संदर्भ BookApp.Domain
। debug
, staging
, prod-eu
, prod-us
और prod-as
:
BookApp.Web
निम्नलिखित निर्माण विन्यास है। हमारे पास उत्पादन और स्टेजिंग पर्यावरण के लिए तीन डेटासेंटर हैं।
BookApp.Domain
अभी तक केवल दो बिल्ड कॉन्फ़िगरेशन हैं, debug
।
विजुअल स्टूडियो के भीतर से समाधान का निर्माण करते समय, मैं यह सुनिश्चित करने के लिए बिल्ड कॉन्फ़िगरेटर का उपयोग कर सकता हूं कि वेब प्रोजेक्ट के लिए बिल्ड कॉन्फ़िगरेशन का कोई फर्क नहीं पड़ता है, डीबग कॉन्फ़िगरेशन हमेशा डोमेन प्रोजेक्ट के लिए उपयोग किया जाता है।
हालांकि, मेरे निरंतर एकीकरण सर्वर पर एमएसबिल्ड के साथ निर्माण करते समय, चीजें गलत होती हैं। मैं अपने rollout.msbuild फ़ाइल में इस का उपयोग करें:
<MSBuild Projects="BookApp.Web\BookApp.Web.csproj" Properties="Configuration=Prod-us" />
जब मैं इस चलाने के लिए, MSBuild सभी निर्भर परियोजनाओं ही निर्माण विन्यास की अपेक्षा करता है। चूंकि यह मामला नहीं है (और IMO नहीं होना चाहिए), यह इस त्रुटि संदेश के साथ विफल रहता है:
The OutputPath property is not set for project 'BookApp.Domain.csproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Prod-us' Platform='AnyCPU'.
एक उत्तर एक related question करने के लिए प्रत्येक निर्माण विन्यास के लिए अलग .sln समाधान बनाने और MSBuild के साथ चल रहा है कि पता चलता है। मेरे लिए जो एक अच्छा विचार की तरह नहीं लगता है।
डोमेन प्रोजेक्ट में सभी बिल्ड कॉन्फ़िगरेशन की प्रतिलिपि बनाना आदर्श नहीं है।
क्या एमएसबिल्ड को विभिन्न बिल्ड कॉन्फ़िगरेशन का उपयोग करने का एक बेहतर तरीका है?
जो मैं समझता हूं उससे, एक प्रश्न के साथ * एक * प्रोजेक्ट की कई बिल्ड कॉन्फ़िगरेशन बनाने के साथ यह प्रश्न और उत्तर सौदा करता है। मैं समझने की कोशिश कर रहा हूं कि मैं अपने मामले में इसका उपयोग कैसे कर सकता हूं। क्या आप विस्तार से समझा सकते हैं? – lasseschou