से नहीं जब मैं एएसएलएन बनाता हूं जिसमें 2 परियोजनाएं बी.एस.प्रोज़ और सी। एसपीआरओजे शामिल हैं जिनमें आंतरिक परियोजना संदर्भ हैं, यह एमएसबिल्ड में संदर्भ त्रुटियों को फेंकता है। लेकिन जब मैं MSBuild में B.csproj और C.csproj का निर्माण करता हूं तो यह त्रुटियों को फेंक नहीं देता है। और वीएस आईडीई में एएसएलएन का निर्माण भी त्रुटियों को फेंक नहीं देता है। मैं .NET 2.0 ढांचे का उपयोग कर रहा हूं। कृपया एसएलएन और projs बनाने के लिए इस्तेमाल स्क्रिप्ट के नीचे खोजें।एमएसबिल्ड परियोजना संदर्भों के साथ परियोजनाओं को सही तरीके से बनाता है लेकिन समाधान
MSBuild "<path>/A.sln" /p:Configuration=Release /p:StartupObject="" /p:WarningLevel=4 /p:Optimize=true /t:rebuild /l:Filelogger,Microsoft.Build.Engine;logfile=F:\A.sln.log /verbosity:normal
MSBuild "<path>/B.csproj" /p:Configuration=Release /p:StartupObject="" /p:WarningLevel=4 /p:Optimize=true /t:rebuild /l:Filelogger,Microsoft.Build.Engine;logfile=F:\B.csproj.log /verbosity:normal
MSBuild "<path>/C.csproj" /p:Configuration=Release /p:StartupObject="" /p:WarningLevel=4 /p:Optimize=true /t:rebuild /l:Filelogger,Microsoft.Build.Engine;logfile=F:\C.csproj.log /verbosity:normal
संपादित करें:
सभी त्रुटियों फेंक दिया (सभी परियोजना संदर्भ हैं) refernces लापता के लिए कोड से कर रहे हैं। मुझे नीचे दी गई तीन तरह की त्रुटियां मिलती हैं।
त्रुटि CS0012: प्रकार 'एक्स' को संदर्भित नहीं किया गया है जो एक असेंबली में परिभाषित किया गया है। आपको असेंबली 'वाई, संस्करण = 2.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = aad4cbe5d7c27078' का संदर्भ जोड़ना होगा।
त्रुटि CS0234: प्रकार या नाम स्थान नाम ': प्रकार या नाम स्थान नाम' एक्स ' नाम स्थान' Y '(? आप एक विधानसभा संदर्भ याद कर रहे हैं)
त्रुटि CS0246 में मौजूद नहीं है एक्स 'नहीं पाया जा सका (आप एक का उपयोग कर के निर्देश या एक विधानसभा संदर्भ याद आ रही है?)
मैं दोनों आईडीई और MSBuild से निर्माण से पहले निर्माण रास्तों से सभी पहले से बनाया DLLs को मंजूरी दे दी। लेकिन आईडीई बस ठीक काम करता है और परियोजना के लिए "रिफ्रेंस" खंड में एक संदर्भ गायब संकेतक नहीं दिखाता है।
आईडीई में मैन्युअल रूप से कोई संदर्भ पथ नहीं जोड़ा गया।
एक और अद्यतन:
मैं सिर्फ देखा है कि जब मैं समाधान से दोनों परियोजनाओं को खोलने, संदर्भ सही ढंग से IDE में ओर इशारा करते हैं। लेकिन जब मैं आईडीई में परियोजनाओं को अलग-अलग खोलता हूं, तो एमएसबील्ड में होने वाले लापता संदर्भों का उल्लेख मैंने किया है। बहुत डरावना
तो संक्षेप में प्रस्तुत करने,
Buiilding .proj MSBuild में - अच्छा
Buiilding .proj आईडीई में - त्रुटि
Buiilding .sln MSBuild में - त्रुटि
Buiilding .sln आईडीई में - अच्छा
दिखता है मेरे लिए बहुत डरावना बहुत सराहना की मदद करें।
जब भी आप कोई प्रश्न पूछ रहे हों और कहें कि कोई त्रुटि है, तो यह वास्तव में त्रुटि को काटने और पेस्ट करने में मदद करता है। यह अपवादों, कंपाइलर त्रुटियों के लिए जाता है, त्रुटियों का निर्माण करता है ... –
बीटीडब्लू, अगर यह बिना किसी समस्या के व्यक्तिगत रूप से दो परियोजनाओं का निर्माण करता है, तो मुझे आश्चर्य है कि दोनों परियोजनाओं को परियोजना संदर्भों की आवश्यकता है या नहीं। ओटीओएच, यह हालिया फीचर के कारण काम कर रहा है जो एमएसबीयूआईएलडी को परियोजना संदर्भों के बारे में "स्मार्ट" होने की अनुमति देता है। जैसा कि मैंने उस सुविधा को कभी नहीं समझा है, मैं इसे रद्द नहीं कर सकता; लेकिन मैं आपको यह पुष्टि करने की अनुशंसा करता हूं कि सभी परियोजना संदर्भों की आवश्यकता है या नहीं, और पुनर्निर्माण बी को सी –
@blntechie के पुनर्निर्माण का कारण बनता है: अद्यतन के लिए धन्यवाद। मेरा सुझाव है कि आप समाधान एक्सप्लोरर का उपयोग करें; प्रत्येक संदर्भ का चयन करें, क्रम में, और गुण विंडो में विवरण देखें। कुछ अजीब देखें, जैसे कि ओब्जे में और दूसरों को बिन में? इसके अलावा, यदि कोई संदर्भ पथ नहीं है, तो आप यह सुनिश्चित करने के लिए अपने .csproj.user फ़ाइलों को देखकर कोई फर्क नहीं पड़ता कि वास्तव में कोई नहीं है? –