2012-10-25 19 views
5

मैंने हाल ही में वीएस.NET 2012 में अपग्रेड किया और मैंने डिबगिंग के दौरान एक बहुत ही निराशाजनक समस्या का सामना करना शुरू कर दिया।विजुअल स्टूडियो 2012 में परियोजना निर्भरता पुनर्निर्माण के लिए मजबूर

प्रोजेक्ट ए में प्रोजेक्ट बी का एक प्रोजेक्ट संदर्भ है। जब मैं प्रोजेक्ट बी को संपादित करता हूं, तो मैं प्रोजेक्ट बी में परिवर्तन का पता लगाने के लिए प्रोजेक्ट ए को बिल्डिंग/डीबग करने की कार्रवाई करता हूं और इसे स्वचालित रूप से प्रोजेक्ट ए के निर्माण के दौरान शामिल करता हूं। यह परियोजना निर्भरताओं का मुद्दा है।) और यह वही है जो वीएस 2010 में होता था।

लेकिन यह 2012 में नहीं होता है। असल में, अगर मैं प्रोजेक्ट बी को स्पष्ट रूप से बनाता हूं, तो परियोजना ए उस पर नहीं उठाएगा परिवर्तन जब तक कि मैं फिर से बनाना परियोजना ए

तो अब मैं स्पष्ट रूप से परियोजना बी का निर्माण तो परियोजना एक के लिए वापस जाओ और स्पष्ट रूप से के लिए यह पुनर्निर्माण करने के लिए मजबूर कर रहा हूँ परियोजना बी में संशोधन शामिल किया जाना है।

विचार?

+0

ये किस तरह की परियोजनाएं हैं? किस तरह के बदलाव इस समस्या को प्रदर्शित करते हैं? (उदा।, जब आप प्रोजेक्ट बी को संपादित करते हैं, तो क्या आप वास्तव में इसमें बदलाव करते हैं जिसके लिए ए को पुनर्निर्मित करने की आवश्यकता होती है?) –

+0

एक विंडोज फॉर्म एप्लिकेशन (प्रोजेक्ट ए) है और एक डीएलएल (प्रोजेक्ट बी) है। हां, मैं परिवर्तन कर रहा हूं (कोड परिवर्तन) जो प्रोजेक्ट ए – RMD

उत्तर

6

क्या आपने अपने समाधान में निर्भरता परियोजनाएं निर्धारित की हैं?

हम उन लोगों से सेट कर सकते हैं:

राइट क्लिक करें समाधान-> गुण> परियोजना निर्भरता

वैसे, आप विजुअल स्टूडियो IDE में या MSBuild आदेश के आधार पर आपके समाधान का निर्माण किया था?

यदि आप परियोजनाओं के निर्माण के लिए एमएसबिल्ड का उपयोग करते हैं, तो आपको अपनी प्रोजेक्ट फ़ाइलों में DependsOnTargets विशेषता जोड़नी चाहिए।

अधिक जानकारी आप उल्लेख कर सकते हैं:

http://msdn.microsoft.com/en-us/library/ms366724.aspx

+0

पर एक बिल्ड को मजबूर करना चाहिए। मैं विजुअल स्टूडियो 2012 का उपयोग कर रहा हूं। प्रोजेक्ट ए में प्रोजेक्ट बी पर एक प्रतिबाधा है। यह स्वचालित रूप से VS.NET द्वारा स्थापित किया गया था, और मैंने बस इसे दो बार चेक किया। – RMD

3

आपका 3 पैरा रास्ता निर्भरता काम के साथ एक गलतफहमी में इंगित करता है। अगर मैं गलत हूं तो मुझे माफ़ कर दो।

यदि प्रोजेक्ट ए पर प्रोजेक्ट बी पर निर्भरता है, तो प्रोजेक्ट बी का निर्माण परियोजना ए के पुनर्निर्माण को मजबूर नहीं करेगा। बिल्डिंग प्रोजेक्ट ए को परियोजना बी में बदलाव की जांच करनी चाहिए और यदि आवश्यक हो तो स्वचालित रूप से बी का पुनर्निर्माण करना चाहिए।

इस मामले में प्रोजेक्ट ए माता-पिता या रूट प्रोजेक्ट है। माता-पिता का निर्माण उन सभी परियोजनाओं की जांच करेगा जिन पर यह निर्भर करता है और यदि वे पुराने हैं तो उन्हें पुनर्निर्माण करें। हमेशा माता-पिता का निर्माण करना स्वचालित रूप से पुरानी निर्भरताओं का निर्माण करेगा, और उसके बाद मूल परियोजना को निर्भरताओं में कोई भी नया बदलाव उठाएंगे।

A 
\ 
    B 
    |\ 
    C D 

इस उदाहरण में, अगर B निर्भरता था वे के रूप में अच्छी का निर्माण किया जाएगा। आप स्पष्ट रूप से बी का निर्माण किया है, तो इसका निर्भरता सी और डी की जाँच की और पुनर्निर्माण किया होगा, लेकिन नहीं ए

आप स्पष्ट रूप से एक, पहली सी का निर्माण किया और डी की जाँच की और फिर से बनाया यदि आवश्यक हो, तो बी, तो अंत में ए

किया जाएगा तो
+1

मुझे विश्वास नहीं है कि मुझे कोई गलतफहमी है। जैसा कि मैंने कहा, मैं प्रोजेक्ट बी में बदलाव करता हूं। फिर मैं प्रोजेक्ट ए का निर्माण करता हूं और प्रोजेक्ट बी में बदलाव शामिल नहीं होते हैं। बिल्डिंग/पुनर्निर्माण के बारे में मेरा मुद्दा केवल मेरे वर्तमान काम को चित्रित करना था, यह वर्णन करने के लिए कि मैं इसे कैसे काम करने की उम्मीद करूंगा। आपकी व्याख्या अभी भी मुझे नहीं बताती है कि प्रोजेक्ट बी में बदलाव करने के बाद प्रोजेक्ट ए का निर्माण क्यों नहीं होता है, जिसके परिणामस्वरूप उन बदलावों को शामिल नहीं किया जाता है। – RMD

0

मुझे लगता है कि आप निरंतर एकीकरण (सीआई) सर्वर की तलाश में हैं। स्रोत भंडारों की निगरानी के लिए एक सीआई कॉन्फ़िगर किया जा सकता है और कोड आधार पर नए बदलाव किए जाने पर लक्षित असेंबली बनाने के लिए ट्रिगर किया जा सकता है।

अन्यथा, जैसा कि अन्य ने उल्लेख किया है, परियोजना निर्भरताओं का उपयोग संदर्भित असेंबली के पुनर्निर्माण के लिए किया जा सकता है।

1

मैंने पहले एक ऐसी ही समस्या थी, और कारण यह है कि बी करने के लिए एक के संदर्भ में एक नियमित संदर्भ (DLL फ़ाइल के लिए) था: मेरा उत्तर इस प्रश्न पर देखें "। यह स्थिति निश्चित रूप से आपके द्वारा देखे जाने वाले व्यवहार की व्याख्या करेगी।

एक टेक्स्ट एडिटर में को देखने के लिए, और <Reference> और <ProjectReference> तत्वों को जांचने के लिए जांचें ताकि वे यह सुनिश्चित कर सकें कि वे आपको किस तरह से सोचते हैं।

+0

यदि यह समस्या नहीं है तो प्रोजेक्ट फ़ाइल या विजुअल स्टूडियो के साथ कुछ गलत है। – makhdumi