2012-06-26 11 views
10

सवाल यह है कि अपने प्रोजेक्ट में विधानसभाओं कि MVC4 और EF5 में अपग्रेड किया गया के संस्करणों के बीच विवादों को सुलझाने के है?मिले संघर्ष -> MVC4/EF4 -> EF5

समस्या तथ्य यह है कि मेरी नियंत्रकों और मॉडल System.Data.Objects अपने विचार शामिल कर सकते हैं, लेकिन अब में प्रकट होता है।

मैं MVC 4 का उपयोग कर रहा है, मेरी परियोजना MVC से उन्नत बनाया गया था 3.

इकाई की रूपरेखा संस्करण 5.

मैं एक नियंत्रक कि System.Data.Objects से ObjectContext का उपयोग करने में सक्षम है है।

मेरे usings: System.Data.Objects उपयोग करते हुए; System.Data.Entity का उपयोग कर ;

जब मैं दृश्य रूप System.Data.Objects में का उपयोग कर शामिल करने के लिए प्रयास करते हैं, मैं:

CS0234: प्रकार या नाम स्थान का नाम 'वस्तुओं' नाम स्थान 'System.Data' में मौजूद नहीं है (आप एक विधानसभा संदर्भ याद कर रहे हैं)

मैं .net लक्षित कर रहा हूं 4.5

मेरे बिल्ड प्रदर्शित करता है इस संदेश: C: \ Windows \ Microsoft.NET \ फ्रेमवर्क \ v4.0.30319 \ Microsoft.Common.targets (1561,5): एमएसबी 3247 चेतावनी: एक ही निर्भर असेंबली के विभिन्न संस्करणों के बीच संघर्ष मिला।

+1

मैं पूरी तरह यकीन है कि तुम्हारी समस्या क्या है क्या नहीं कर रहा हूँ, लेकिन मुझे लगता है कि मेरा पहला सवाल होगा वहाँ है वैसे भी आप दृश्य से ObjectContext साथ बातचीत के दौरान बच सकते हैं?यह आम तौर पर एक बुरा विचार है और एमवीसी पैटर्न में आपके विचार के नियमों को "गूंगा" होने का उल्लंघन करता है। आपको अपने विचारों में प्रदर्शन विशिष्ट तर्क के अलावा किसी अन्य चीज़ से बचना चाहिए। एक तरफ ध्यान दें, क्या आप अपना विचार पोस्ट कर सकते हैं (या इसके कुछ हिस्सों) ताकि मैं आपकी समस्या की बेहतर समझ प्राप्त कर सकूं? – theMothaShip

+0

यही वह है जो मैं दृश्य में करने की कोशिश कर रहा हूं: @ ObjectContext.GetObjectType (item.TimelineEntry.Document.GetType())। Name.ToString(); –

+0

तो शायद यह हो रहा है कि आपके प्रोजेक्ट में संदर्भित कुछ अन्य असेंबली इकाई ढांचे के एक अलग संस्करण का संदर्भ दे रही है, इसलिए आपको अपने निर्माण डिस्प्ले में संदेश क्यों मिल रहा है। क्या आपका आवेदन सिर्फ एक प्रोजेक्ट फ़ाइल है या क्या एक ही समाधान में कई परियोजनाएं हैं जो सभी इकाई ढांचे का संदर्भ दे सकती हैं या नहीं? – theMothaShip

उत्तर

3

आप का निर्माण संदेश को देखें, तो यह कहा गया .NET फ्रेमवर्क के 4.0 संस्करण संदर्भित है ... आपकी परियोजना फ़ाइल या वेब/app.config में एक सेटिंग .NET फ्रेमवर्क के एक परस्पर विरोधी संस्करण को निर्दिष्ट है ?

क्या आप fuslog से परिचित हैं? आप इसे अपने असेंबली बाइंडिंग को लॉग इन करने के लिए सेट अप कर सकते हैं .नेट आपके एप्लिकेशन को चलाने के दौरान कर रहा है। तब आपको बाध्य होने वाली चीज़ों के बारे में विस्तृत जानकारी देखने में सक्षम होना चाहिए। यदि आप अभी भी इसे समझ नहीं सकते हैं, तो आप हमेशा web.config में उस .dll पर बाध्यकारी रीडायरेक्ट कर सकते हैं।

http://msdn.microsoft.com/en-us/library/eftw1fys.aspx - बाध्यकारी रीडायरेक्ट

http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.71).aspx - संलयन लॉग दर्शक

सेट करें संलयन लकड़हारा और क्या उत्पादन होता है पर एक नज़र डालें। अगर आपको इसका उत्तर नहीं मिलता है, तो बाध्यकारी रीडायरेक्ट का प्रयास करें (जो आपको कम से कम एक अस्थायी समाधान देगा)।

+0

मुझे यकीन नहीं है कि यह जानने के लिए कि क्या संदर्भित किया जा रहा है। प्रोजेक्ट गुण संदर्भित हैं .Net 4.5। मैं इसे कैसे ट्रैक करूं? संदर्भ में केवल एक सिस्टम है। डेटा। एंटीटी डीएलएल। –

+0

ऐसा लगता है कि दृश्य system.data.entity के एंटिटी फ्रेमवर्क 5 संस्करण तक पहुंच रहा है और नियंत्रक संस्करण 4 तक पहुंच रहा है, जिसमें system.data.objects है। मैं कैसे कर सकता हूं 1) सुनिश्चित करें कि पूरी परियोजना नई असेंबली का उपयोग कर रही है। 2) संस्करण 5 ईएफ पर संदर्भ ऑब्जेक्ट प्राप्त करने के लिए मिलता है? –

+0

अजीब - मॉडल को ऑब्जेक्ट कॉन्टेक्स्ट तक पहुंचने में कोई समस्या नहीं है। –

28

त्रुटि के बारे में अधिक विस्तृत जानकारी प्राप्त करने के लिए आप डायग्नोस्टिक मोड में अपना समाधान बना सकते हैं।

ओपन वी.एस. विकल्प संवाद (उपकरण> विकल्प), "परियोजनाओं और समाधान" नोड पर नेविगेट करें और "निर्माण और भागो"। डायग्नोस्टिक के लिए एमएस बिल्ड प्रोजेक्ट बिल्ड आउटपुट वर्बोसिटी बदलें।

here देखें।

+0

डायग्नोस्टिक्स मोड आपको बताता है कि कौन से डीएल अन्य संस्करणों में भी खींच रहे हैं। बहुत उपयोगी। – Laurence

+4

बस एक नोट, जब आप बिल्ड आउटपुट प्राप्त करते हैं तो आउटपुट विंडो में "संघर्ष" शब्द की खोज करें और आपको समस्या मिल जाएगी। –

0

निर्देशिका मैं करने के लिए प्रकाशन किया गया था, वहाँ aspnet_client नाम का एक फ़ोल्डर था। मैंने इसे स्थानांतरित कर दिया (इसे हटाने के बजाय), पुन: प्रकाशित, और यह काम किया। मुझे यकीन नहीं है कि उस फ़ोल्डर ने मुझे नीले रंग से परेशानी देने का फैसला क्यों किया।

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