2014-10-06 10 views
7

qui un'altra domanda simile a SignalR 2.0.2 and Owin 2.0.0 dependency conflict. Se eseguo il progetto come applicazione console, sto bene. In caso contrario, come libreria di classi se l'eseguo dal prompt dei comandi ho ottenuto questo errore da IIS espresso dicendo:Conflitto di dipendenza Microsoft.Owin 2.0.2.0 quando ho installato 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) 

ma non può essere, come ho installato 3.0.0.0 e nel file di configurazione che ho:

  <?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> 

Qui il resto dell'applicazione:

  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!!!"); 
         } 
        } 
       } 
      } 

Qui l'istruzione dal prompt dei comandi:

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

Ho dimenticato di dire che funziona solo se rimuovo ConfigureWebApi (app);

Qualche idea?

risposta

37

Ho solo bisogno di rinominare App.config su Web.config o di fare una copia di esso e denominarlo Web.config e funziona.

+15

È necessario selezionare questo come risposta. Ho affrontato questo problema mentre lavoravo con il video del sito plurale di K. Scott Allen "ASP.NET MVC 5 Fundamentals". Non lo menziona come un passo per far funzionare il progetto KatanaIntro. Forse è un nuovo problema. – Jordan

+3

Come in Giordania e questo ha funzionato alla grande. Grazie! –

+3

Mi sono imbattuto nella stessa cosa nel video Plural Site di Scott Allen mentre stavo scrivendo l'app insieme a lui. Grazie per la risposta!! –

-1

Installare il pacchetto Microsoft.Owin.Security. Per me funziona.

PS. Non dimenticare di rinominare il file app.config.

+0

C'è qualcosa di diverso dalla mia risposta? –

0

tenta di eseguire

comando cmd:

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

e rinominare AppConfig a WebConfig

0

Vai al progetto refrences & scoprire Microsoft.Owin. Fare clic destro su di esso & controllare la versione sulle proprietà.

Progetto Versione di assieme & sotto la riga di webconfig newVersion deve essere uguale.

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