29

ईएस 5 बीटा का परीक्षण करने के लिए स्थापित दृश्य स्टूडियो 11 बीटा स्थापित करने में यह त्रुटि क्यों प्राप्त कर रहा हूं लेकिन यह एक त्रुटि मार रहा है।क्या कोई यह बता सकता है कि मैं ईएफ 5 बीटा

विधि नहीं मिला: 'शून्य System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior (बूलियन)'।

प्रोजेक्ट एक नया खाली एमवीसी 3 एप्लीकेशन है और नीचे कुछ कोड है जो बताता है कि त्रुटि कैसे होती है।

public class Blog 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

public class EFDbContext : DbContext 
{ 
    public DbSet<Blog> Blogs { get; set; } 
} 

public class HomeController : Controller 
{ 
    protected EFDbContext Db = new EFDbContext(); 

    public ActionResult Index() 
    { 
     Blog B = new Blog(); 
     B.Name = "Test";    
     Db.Blogs.Add(B); 
     Db.SaveChanges(); 
     return View(); 
    } 
} 

गूगल पर त्रुटि के लिए देखा है, लेकिन कुछ भी नहीं आया था और मैं काफी यकीन है कि क्या त्रुटि के बात कर रहा है नहीं कर रहा हूँ। मैंने मदद की स्थिति में नीचे दिए गए स्टैकट्रैक का एक स्निपेट जोड़ा।

[MissingMethodException: पद्धति नहीं मिला: 'शून्य System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior (बूलियन)'।] System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +0 प्रणाली। Data.Entity.Internal.InternalContext.Initialize() +31
System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType (प्रकार entityType) +39
System.Data.Entity.Internal.Linq.InternalSet 1.Initialize() +137
System.Data.Entity.Internal.Linq.InternalSet
1.get_InternalContext() +38 सिस्टम। डेटा। एंटीटी। आंतरिक .Linq.InternalSet 1.ActOnSet(Action action, EntityState newState, Object entity, String methodName) +236
System.Data.Entity.Internal.Linq.InternalSet
1.Add (वस्तु इकाई) +200 System.Data.Entity.DbSet`1.Add (TEntity इकाई) +72

उत्तर

60

ऐसा लगता है कि EF5 EntityFramework.dll उपयोग कर रहे हैं, लेकिन फिर नेट के साथ चल रहा 4 .NET 4.5 के बजाय स्थापित किया गया।

यदि आप .NET 4.5 को लक्षित करना चाहते हैं, तो सुनिश्चित करें कि उस मशीन पर .NET 4.5 स्थापित है जिस पर आप कोड चला रहे हैं। वीएस 11 आपके लिए .NET 4.5 इंस्टॉल करता है, लेकिन आप एक गैर-देव मशीन पर रनटाइम भी इंस्टॉल कर सकते हैं।

यदि आप .NET 4 को लक्षित करना चाहते हैं, तो सुनिश्चित करें कि आप प्रोजेक्ट .NET 4 को लक्षित करने के लिए सेट हैं और फिर EF5 NuGet पैकेज को अनइंस्टॉल और पुनर्स्थापित करें। आपको अनइंस्टॉल और पुनर्स्थापित करना होगा क्योंकि प्रोजेक्ट फिर से शुरू होने पर NuGet स्वचालित रूप से उपयोग में असेंबली को नहीं बदलेगा।

अद्यतन:

इस अपवाद देख सकते हैं अगर आप अभी भी एफई जून CTP स्थापित या इसे सही ढंग से की स्थापना रद्द करने में विफल रहा है, तो है। वीएस 11 स्थापित करने से पहले कृपया जून सीटीपी को पूरी तरह से अनइंस्टॉल करने का प्रयास करें। आप अभी भी समस्या को देखते हैं उन्हें प्रशासक के रूप में एक "डेवलपर कमांड प्रॉम्प्ट" खोलने के लिए और चलाएँ:

gacutil /u System.Data.Entity,Version=4.2.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089 

यदि इससे भी विफल रहता है, तो आप के साथ GAC से स्थापना रद्द करें मजबूर करने के लिए प्रयास कर सकते हैं:

gacutil /uf System.Data.Entity,Version=4.2.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089 
+0

प्रतिक्रिया की सराहना करता है। हालांकि मेरे पास .NET 4.5 स्थापित है और मेरी परियोजना .net 4.5 ढांचे को भी लक्षित कर रही है। मैं वीएस 11 अल्टीमेट बीटा में नेट 4.5 बीटा फ्रेमवर्क के साथ ईएफ 5.0 बीटा चलाने का प्रयास कर रहा था। मैं वीएस 11 और .NET 4.5 ढांचे को अनइंस्टॉल करने और शुरू करने का प्रयास करूंगा। – Drauka

+0

अनइंस्टॉल किया गया बनाम बीटा और 4.5 फ्रेमवर्क और पुन: स्थापित बनाम 11 बीटा सहित 4.5 .... समस्या बनी रहती है और मुझे एक ही त्रुटि मिल रही है। – Drauka

+0

क्या आप GAC में System.Data.Entity.dll का फ़ाइल संस्करण पा सकते हैं? विंडोज एक्सप्लोरर में, फ़ोल्डर C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ System.Data.Entity \ v4.0_4.0.0.0__b77a5c561934e089 या अपनी मशीन के बराबर फ़ोल्डर खोलें। System.Data.Entity.dll पर राइट क्लिक करें, विवरण टैब का चयन करें, और उत्पाद संस्करण देखें। यदि यह "4.0.30319.1737 9" है तो आपके पास .NET 4.5 स्थापित है। यदि यह "4.0.3031 9 .1" है तो आप किसी भी तरह से अभी भी .NET 4 स्थापित है। –

5

सुनिश्चित करें कि आपके पास अपने लक्ष्य तंत्र पर .NET 4.5 स्थापित है। मेरे पास एक ही संदेश था, यह पता चला कि मेरे पास मेरे फार्म सर्वरों में से एक पर .NET 4.5 स्थापित नहीं है।

0

यदि आपको 4.2 सिस्टम से छुटकारा पाने में परेशानी है। डेटा।GAC की तरह मैंने किया था, जहां यह शिकायत की संस्थापक इस पर निर्भर से इकाई,

G:\Program Files (x86)\Microsoft Visual Studio 2012 Ultimate\VC>gacutil /uf System.Data.Entity,Version=4.2.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089 
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.17929 
Copyright (c) Microsoft Corporation. All rights reserved. 


Assembly: System.Data.Entity, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b 
77a5c561934e089, processorArchitecture=MSIL 
Assembly could not be uninstalled because it is required by Windows Installer 
Number of assemblies uninstalled = 0 
Number of failures = 0 

आप इस फ़ोल्डर से रजिस्ट्री में कुंजियों से छुटकारा पाने के कर सकते हैं:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Assemblies\Global 

और GACUtil को फिर से चलाएं/UF आदेश

0

मैं इस समस्या को दूर करने नीति हल:

C: \ Windows \ Microsoft.NET \ विधानसभा \ GAC_MSIL \ policy.4.0.system.data.entity \ v4.0_0.0.0.0__b77a5c561934e089 \ policy.4.0.system.data.entity.config

कौन इस जानकारी थी: ... bindingRedirect oldVersion = "4.0.0.0" NewVersion = "4.2.0.0" ...

यह आशा है कि रुई