2009-05-02 19 views
15

में सी # परियोजनाओं पर इंटरमीडिएट निर्देशिका को ले जाएं मैं वर्तमान में मध्यम आकार (15 आईएसएच परियोजनाओं) विजुअल स्टूडियो समाधान को अलग करने, पुन: सक्रिय करने और सफाई करने की प्रक्रिया में हूं। समाधान में सी ++ और सी # दोनों में परियोजनाएं शामिल हैं।विजुअल स्टूडियो

मैं आउटपुट के मामले में चीजों को यथासंभव स्वच्छ रखने के लिए उत्सुक हूं - स्रोत कोड से बनाए गए किसी भी कंपाइलर को अलग करना, क्योंकि यह सबवर्सन में मदद करता है (ठीक है, मैं इसे फाइलों को अनदेखा करने के लिए कह सकता हूं, लेकिन मुझे अभी भी यह गन्दा लगता है) बाहर निकलने से।

उत्पादन मैं प्राप्त करने के लिए चाहते हैं इस प्रकार है:

SolutionDir/ 
SolutionDir/src/project1/{ Code here } 
SolutionDir/int/project1/configuration/{.obj files and other misc compiler junk here} 
SolutionDir/bin/project1/configuration/{The fun stuff goes here} 

इस रूप में आप दोनों उत्पादन और मध्यवर्ती निर्देशिका निर्दिष्ट कर सकते हैं सी ++ परियोजनाओं के साथ तुच्छ लगता है। हालांकि सी # के साथ, कम से कम विजुअल स्टूडियो 2008 यूजर इंटरफेस के माध्यम से ओबीजे निर्देशिका को स्थानांतरित करना असंभव लगता है?

कुछ खुदाई करने के बाद, मैं

<IntermediateOutputPath>..\..\int\ProjectName\Debug\</IntermediateOutputPath> 

जोड़ा सी #

.csproj यह काम करने के लिए, एक तरह से प्रकट होता है। यह सच है कि मध्यवर्ती वहां समाप्त होने लगते हैं, लेकिन एक निर्देशिका 'obj' और इसके तहत एक कॉन्फ़िगरेशन निर्देशिका (उदा। 'डीबग') और फिर 'TempPE' निर्देशिका पुराने स्थान पर बनाई गई है - जिनमें से सभी खाली हैं।

यह वास्तव में एक बड़ा सौदा नहीं है, लेकिन इस व्यवहार के कारण को जानना अच्छा होगा और यदि इसे ठीक करने का कोई तरीका हो।

अग्रिम धन्यवाद!

+6

मुझे लगता है कि यह * एक बड़ा सौदा है, और एमएस को इसे ठीक करने की आवश्यकता है, तो गुण भी उपयोगी हैं। –

+0

संभावित डुप्लिकेट [सी # में इंटरमीडिएट आउटपुट निर्देशिका को कॉन्फ़िगर कैसे करें?] (Http://stackoverflow.com/questions/3311212/how-to-configure-intermediate-output-directory-in-c) –

उत्तर

2

मैं इस समस्या को अपने आप के लिए एक समाधान के लिए खोज कर रहा है, और कुछ कम दखल के साथ आया था।

नाम "CleanSrcDir.bat" कहीं एक बल्ला फ़ाइल बनाएँ (मैं मेरा अपने प्रोजेक्ट रास्ते में रखा) निम्नलिखित सामग्री के साथ:

rmdir /S /Q %1obj 
SET %ERRORLEVEL%=0 

इस के बाद, जोड़ने सी # परियोजना की घटनाओं के बाद निर्माण करने के लिए कुछ इसी तरह :

$(ProjectDir)CleanSrcDir.bat $(ProjectDir) 

(इसका मतलब यह है कि आप परियोजना निर्देशिका में अपने बल्ले फ़ाइल रखा, निश्चित रूप से।) फिर बाद निर्माण सेटिंग्स को "हमेशा" बदलने के लिए, और बस हो गया।

यह थोड़ा hackish है, लेकिन यकीन है कि संस्करण नियंत्रण समस्या दूर जाना पड़ता है।

1

मैं उन निर्देशिकाओं को जोड़ने की अनुशंसा करता हूं जिन्हें आप एक एसवीएन अनदेखा संपत्ति एक-स्तर-अप पर अनदेखा करना चाहते हैं। साथ ही, जब आप प्रारंभिक प्रतिबद्ध करते हैं और बिन और obje निर्देशिका नहीं जोड़ते हैं, तो एसवीएन क्लाइंट फिक्र नहीं होंगे। एक और नोट पर, जेनरेटेड फाइलों को जेनरेटेडफाइल उपनिर्देशिका में जेनरेट की गई फाइलों पर विचार करें, और उस निर्देशिका को एसवीएन में जांच न करें।

+2

यह सब सिर्फ कामकाज है , लेकिन आप उन्हें सहायक पा सकते हैं। – GregC

+0

धन्यवाद - +1 करने के लिए पर्याप्त सहायक, जवाब स्वीकार करने के लिए पर्याप्त नहीं है, फिर भी;) –

8

आप प्रत्येक निर्माण विन्यास तो "obj" फ़ोल्डर डिफ़ॉल्ट रूप से बनाया नहीं है करने के लिए निम्नलिखित लाइनों के दोनों जोड़ सकते हैं और एक के बाद निर्माण कार्रवाई के लिए कोई जरूरत नहीं है, तो:

<IntermediateOutputPath>Assembly\obj\Debug\</IntermediateOutputPath> 
<BaseIntermediateOutputPath>Assembly\obj\Debug\</BaseIntermediateOutputPath> 

SVN/एस सी सी की अनदेखी वांछित

+0

बहुत अच्छा! इसके अलावा ... VS2010 [एक जंक TempPE फ़ोल्डर को पुनर्निर्मित रखेगा] (http://connect.microsoft.com/VisualStudio/feedback/details/583689/temppe-folder-is-created-even-when-outputpath-intermediateoutputpath-and -baseintermediateoutputpath-are-set) ... –

+0

वीएस2012 में यह समस्या नहीं है (जंक TempPE फ़ोल्डर बना रहा है)। एमएसडीएन "इंटरमीडिएटऑटपुटपैथ" पर "सामान्य एमएसबिल्ड परियोजना गुण" के लिए मदद के अनुसार बिन और ओबीजे फ़ोल्डर निर्दिष्ट – flipchart

+0

का एकमात्र आउटपुट है ... "यदि यह संपत्ति (_IntermediateOutputPath_) ओवरराइड है, तो बेसइंटरडिएटऑटपुटपैथ को कोई प्रभाव नहीं पड़ता है ... "। वीएस -2010 में मेरे परीक्षण से यह सच लगता है। http://msdn.microsoft.com/en-us/library/vstudio/bb629394(v=vs.110).aspx –

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