2014-10-06 4 views
7

tutaj inne pytanie podobne do SignalR 2.0.2 and Owin 2.0.0 dependency conflict. Jeśli uruchomię projekt jako aplikację konsolową, nic mi nie jest. W przeciwnym razie, jak biblioteki klas gdybym go uruchomić z wiersza polecenia Mam ten błąd z IIS Express, mówiąc:Microsoft.Owin 2.0.2.0 konflikt zależności, gdy zainstalowałem 3.0.0.0

Could not load file or assembly 'Microsoft.Owin, Version=2.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 

Ale to nie może być, jak już zainstalowany 3.0.0.0 oraz w pliku config mam:

  <?xml version="1.0" encoding="utf-8"?> 
     <configuration> 
      <startup> 
       <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
      </startup> 
      <runtime> 
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
       <dependentAssembly> 
       <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
       <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
       </dependentAssembly> 
       <dependentAssembly> 
       <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
       <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
       </dependentAssembly> 
      </assemblyBinding> 
      </runtime> 
     </configuration> 

Oto reszta aplikacji:

  namespace katanaIntro 
      { 
       using AppFunc = Func<IDictionary<string, object>, Task>; 

       public class Startup 
       { 
        public void Configuration(IAppBuilder app) 
        { 
         app.Use(async (environment, next) => 
         { 
          Console.WriteLine("Requestion : " + environment.Request.Path); 
          await next(); 
          Console.WriteLine("Response : " + environment.Response.StatusCode); 
         }); 
         ConfigureWebApi(app); 
         app.UseHelloWorld(); 
        } 

        private void ConfigureWebApi(IAppBuilder app) 
        { 
         var config = new HttpConfiguration(); 
         config.Routes.MapHttpRoute(
          "DefaultApi", 
          "api/{controller}/{id}", 
          new { id = RouteParameter.Optional }); 
         app.UseWebApi(config); // <-- It works without this!!! 
        } 
       } 

       public static class AppBuilderExtensions 
       { 
        public static void UseHelloWorld(this IAppBuilder app) 
        { 
         app.Use<HelloWorldComponent>(); 
        } 
       } 

       public class HelloWorldComponent 
       { 
        AppFunc _next; 

        public HelloWorldComponent(AppFunc next) 
        { 
         _next = next; 
        } 

        public Task Invoke(IDictionary<string, object> environment) 
        { 
         var response = environment["owin.ResponseBody"] as Stream; 
         using (var writer = new StreamWriter(response)) 
         { 
          return writer.WriteAsync("Hello!!!"); 
         } 
        } 
       } 
      } 

tu instrukcji z wiersza poleceń:

 "c:\Program Files\IIS Express\iisexpress.exe" /path:"C:\Users\smagistri\Projects\Lab 4.5\katanaIntro\katanaIntro" 

Zapomniałem wspomnieć, że działa tylko wtedy, gdy usunę ConfigureWebApi (app);

Wszelkie pomysły?

Odpowiedz

37

Potrzebuję tylko zmienić nazwę pliku App.config na Web.config lub utworzyć jego kopię i nazwać go Web.config i to działa.

+15

Powinieneś wybrać to jako odpowiedź. Zmierzyłem się z tym problemem, pracując z filmem w witrynie K. Scott Allena "ASP.NET MVC 5 Fundamentals". Nie wspomina o tym jako o kroku, aby projekt KatanaIntro zadziałał. Może to nowszy problem. – Jordan

+3

Tak samo jak Jordan i to się udało. Dzięki! –

+3

Wpadłem na to samo w filmie z wieloma filmami Scotta Allena, kiedy pisałem aplikację razem z nim. Dziękuję za odpowiedź!! –

-1

Zainstaluj pakiet Microsoft.Owin.Security. Mi to pasuje.

PS. Nie zapomnij zmienić nazwy pliku app.config.

+0

Czy w jakikolwiek sposób różni się od mojej odpowiedzi? –

0

próby uruchomienia

cmd polecenie:

"%ProgramFiles%\IIS Express\iisexpress.exe" 
-path:"c:\Users\pci40\Documents\Visual Studio 2012\Projects\KatanaInfo 
\KatanaInfo 

i zmienić Appconfig do webconfig

0

Go do projektu Refrences & dowiedzieć Microsoft.Owin. Kliknij na nim prawym przyciskiem myszy & sprawdź wersję we właściwościach.

Wersja zespołu projektu & poniżej linii nowej wersji webconfig powinna być taka sama.

<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />