2012-03-19 29 views
26

मुझे एक समाधान बनाने की आवश्यकता है लेकिन एक परियोजना को बाहर करना है। मैं इसे कैसे करूं? मैंने इस मुद्दे के बारे में बहुत कुछ खोजा लेकिन कुछ भी मदद नहीं कर सका।एमएसबीयूआईएलडी में परियोजना से निर्माण को कैसे बाहर निकाला जाए?

अमान्य तत्व:

ItemGroup अनुभाग निम्न अपवाद वृद्धि। अज्ञात कार्य या डेटाटाइप।

संपत्ति समूह अपवाद भी बढ़ाता है।

<project name="TI 8.1.6 build script"> 
    <ItemGroup> 
    <Solution Include="${ROOT}\Core\TI Core.sln" Exclude="${ROOT}\Utilities\DTS Indexing Service\Tdi.Origami.IndexUpdaterServiceSetup\Tdi.Origami.IndexUpdaterServiceSetup.wixproj"/> 
    </ItemGroup> 
... 
</project> 

तो किसी को भी मेरी मदद कर सकता है:

नीचे मेरी कोड नमूना है?

उत्तर

44

आप दृश्य स्टूडियो में Configuration Manager Dialog का उपयोग करके एक विशिष्ट build configuration के लिए समाधान के स्तर पर परियोजनाओं को बाहर कर सकते हैं:

Configuration Manager Dialog

तो फिर तुम बस समाधान फ़ाइल के निर्माण विन्यास को निर्दिष्ट पर msbuild आह्वान कर सकते हैं का उपयोग करें:

msbuild /property:Configuration=Release MySolution.sln 
+2

का उपयोग कर यह मदद नहीं करता है :( –

+0

क्या हासिल करने की कोशिश कर रहे हैं? –

+0

मैं परियोजना को बाहर करने के लिए "डीबग" मोड पर सेट हूं। अन्य सभी परियोजनाओं को "रिलीज" पर सेट किया गया है। ** msbuild ** गुणों में मैंने कॉन्फ़िगरेशन को रिलीज़ करने के लिए सेट किया है। और प्रक्षेपित परियोजना है दूसरों के साथ बनाया गया और अपवाद बढ़ गया है। –

11

एक समाधान एनरिको ने सुझाव दिया सबसे बहुमुखी समाधान है कि woul है हमेशा काम करते हैं। एक वैकल्पिक समाधान <MSBuild> कार्य सीधे उपयोग करना हो सकता है। यह आपके लिए काम करेगा यदि आपके पास विशेष निर्देशिका के तहत आप सभी प्रोजेक्ट फ़ाइल हैं, या उन सभी परियोजनाओं को आसानी से समझा सकें जिन्हें आप बनाना चाहते हैं (यानी आपके समाधान में परियोजनाओं की संख्या बहुत बड़ी नहीं है)।

उदाहरण के लिए, इस MSBuild फ़ाइल एक विशेष परियोजना के अलावा अपने वर्तमान निर्देशिका के अंतर्गत हर परियोजना का निर्माण होगा:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

    <ItemGroup> 
    <MyProjectReferences Include="**\*.*proj" /> 
    <MyProjectReferences Exclude="Utilities\DTS Indexing Service\Tdi.Origami.IndexUpdaterServiceSetup\Tdi.Origami.IndexUpdaterServiceSetup.wixproj" /> 
    </ItemGroup> 

    <Target Name="BuildAllExceptWixProject"> 
    <MSBuild Projects="@(MyProjectReferences)" Targets="Build" /> 
    </Target> 

</Project> 

तो फिर तुम निर्माण कर सकते हैं कि कमांड लाइन msbuild <myproject> /t:BuildAllExceptWixProject

+3

आप सही थे। लेकिन नहीं ** प्रोजेक्ट संदर्भ ** ** ** प्रोजेक्ट रिफरेंस **। और ** ** प्रोजेक्ट रिफरेंस ** आइटम के लिए ** आवश्यक संपत्ति शामिल है, इसलिए मैंने ** एक ही आइटम में ** शामिल/बहिष्कृत किया है। और यह काम करता है! परियोजना को सफलतापूर्वक बाहर रखा गया था। धन्यवाद!! –

+1

@LubochknAndrew, समूह का नाम कोई मान्य XML तत्व नाम हो सकता है। 'प्रोजेक्ट रेफरेंस' समूह केवल उन समूहों में से एक है जो पहले से ही मानक माइक्रोसॉफ्ट लक्ष्यों में उपयोग किए जाते हैं, जो इस नाम को किसी भी अन्य नाम से बेहतर नहीं बनाता है जिसे आप सोच सकते हैं। ध्यान दें, मेरे उत्तर में उदाहरण मानक माइक्रोसॉफ्ट लक्ष्यों का उपयोग नहीं करता है। –