2015-09-03 11 views
5

मैं OAuth प्रमाणीकरण, हर बार जब मैं इस परियोजना मैं IAppBuilder को विन्यस्त पर एक FileLoadException मिल डिबग करने की कोशिश के साथ एक MVC परियोजना है। मैं पीएमसी का उपयोग कर Microsoft.Owin.Security.Oauth की 3.0.1 संस्करण स्थापित किया है, लेकिन मुझे लगता है कि कहीं न कहीं अभी भी क्योंकि पैकेज के एक पुराने संस्करण के लिए एक संदर्भ होते रहते हैं ...फ़ाइल या विधानसभा Microsoft.Owin.Security.OAuth लोड नहीं कर सका, संस्करण = 2.0.0.0

यह अपवाद है:

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="Antlr" version="3.4.1.9004" targetFramework="net45" /> 
    <package id="CommonServiceLocator" version="1.3" targetFramework="net45" /> 
    <package id="EntityFramework" version="6.0.0" targetFramework="net45" /> 
    <package id="jQuery" version="1.10.2" targetFramework="net45" /> 
    <package id="jQuery.Validation" version="1.11.1" targetFramework="net45" /> 
    <package id="log4net" version="2.0.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Identity.Core" version="1.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Identity.EntityFramework" version="1.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Identity.Owin" version="1.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Mvc" version="5.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Web.Optimization" version="1.1.1" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi" version="5.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.HelpPage" version="5.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Owin" version="5.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.WebHost" version="5.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" /> 
    <package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.0.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin" version="3.0.1" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.Google" version="3.0.1" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net45" /> 
    <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" /> 
    <package id="Modernizr" version="2.6.2" targetFramework="net45" /> 
    <package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" /> 
    <package id="Owin" version="1.0" targetFramework="net45" /> 
    <package id="Unity" version="3.5.1404.0" targetFramework="net45" /> 
    <package id="WebGrease" version="1.6.0" targetFramework="net45" /> 
</packages> 
:

public partial class Startup 
{ 
    public void Configuration(IAppBuilder app) 
    { 
     ConfigureAuth(app); //Exception is thrown here 
    } 
} 

यह मेरा packages.config है: enter image description here

यह जहां यह फेंक दिया जाता है है

<dependentAssembly> 
    <assemblyIdentity name="Microsoft.Owin.Security.OAuth" PublicKeyToken="31bf3856ad364e35"/> 
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/> 
</dependentAssembly> 

नहीं सकते क्यों यह नहीं करता है काम, विजुअल स्टूडियो 3.0.1 और 3.0.1.0 के बीच एक फर्क पड़ता है:

मैं इस तरह के रूप binding redirect जोड़ने की कोशिश की?

मैंने ओबीजे और बिन फ़ोल्डरों को हटाने, परियोजनाओं की सफाई और उन्हें पुनर्निर्माण करने की कोशिश की।

मैंने सभी nuget संकुल को हटाने और उन्हें बहाल करने का प्रयास किया।

मैंने सभी ओविन पैकेजों को पुनर्स्थापित करने का प्रयास किया।

मैं किसी भी Microsoft.Owin.Security.OAuth युक्त फ़ाइल के लिए अपने पूरे स्रोत निर्देशिका खोज करने के लिए एजेंट लूटना थे, लेकिन सही 3.0.1.0 के अलावा संस्करण 2.0.0.0 या किसी अन्य संस्करण के लिए कोई संदर्भ नहीं मिले।

मैं अटक गया हूं, कोई विचार?

+0

'packages.config' को जोड़ने के लिए पर्याप्त है कि आप अपने' .cproj' फ़ाइल में कि dll के लिए एक संदर्भ जोड़ने नहीं किया है? –

+0

यह देखने के लिए जांचें कि आपके बिन फ़ोल्डर में Microsoft.Owin.Security.OAuth.dll है या नहीं। –

+0

"क्या आप संकुल.कॉन्फिग में जोड़ना पर्याप्त नहीं है" का क्या मतलब है?क्या आप प्रस्ताव देते हैं कि मैं इसे पैकेज मैनेजर कंसोल का उपयोग करके इंस्टॉल करता हूं और इसके बाद संदर्भ मैन्युअल रूप से जोड़ता हूं? इसका क्या मतलब होगा? और हाँ, डीएलएल का 3.0.1 संस्करण बिन फ़ोल्डर में है। – Marcus

उत्तर

10

ठीक है, तो बस अगर किसी और को इस समस्या के साथ समाप्त होता है;

समस्या यह थी कि Microsoft.AspNet.Identity.Owin पैकेज Microsoft.Owin.Security.OAuth पर निर्भर करता है और संस्करण में एक मेल नहीं था।

<package id="Microsoft.AspNet.Identity.Core" version="1.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Identity.EntityFramework" version="1.0.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Identity.Owin" version="1.0.0" targetFramework="net45" /> 

जाहिर है, भले ही Microsoft.AspNet.Identity.OwinMicrosoft.Owin.Security.OAuth के v3 + होने संगतता (मुख्य संस्करण विसंगति) टूट जाएगा की आवश्यकता है,> = Microsoft.Owin.Security.OAuth की v2.0।

बाद मैं Microsoft.AspNet.Identity.Owin पैकेज अद्यतन था और उसके परिवार के सदस्यों को आसन्न Microsoft.AspNet.Identity.EntityFramework और Microsoft.AspNet.Identity.Core मैं सभी संकुल, बिन और obj फोल्डर और पुनर्निर्माण समाधान निकाला गया। देखा!

VS2013 + अंतिम उपयोगकर्ता के लिए एक टिप जब पैकेज निर्भरता की खोज NuGet पैकेज विजुअलाइज़र उपयोग करने के लिए है।

+0

क्या आप उद्धृत पाठ को सही कर सकते हैं: "भले ही Microsoft.AspNet.Identity.Owin को Microsoft.AspNet.Identity.Owin की v2.0 की आवश्यकता हो, जिसमें Microsoft.AspNet.Identity.Owin" – NVM

0

अपने संदर्भों की जांच करें। हर जगह से Microsoft.Owin.Security.OAuth को हटाएं, फिर सभी nuget संकुल को पुनर्स्थापित करें।

+0

गंभीरता से? क्या आपने मेरा पोस्ट पढ़ा? – Marcus

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

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