2013-08-31 15 views
10

Ho appena installato automapper, tramite NuGet, su un nuovo progetto, ma quando ho eseguito il codice, ottengo il seguente errore:Perché AutoMapper v3 non funzionerà perché è in cerca di v2.2.1.0?

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

Perché è alla ricerca di Version = 2.2.1.0, e quello che posso fare al riguardo? Ritorna a quella versione?

risposta

10

Probabilmente si desidera solo aggiungere un binding redirect per automapper come uno dei vostri riferimenti è alla ricerca di versione 2.2 specificamente

Questo dovrebbe farlo:

<dependentAssembly> 
     <assemblyIdentity name="AutoMapper" publicKeyToken="be96cd2c38ef1005" 
        culture="neutral"/> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/> 
    </dependentAssembly> 
+0

infatti ho appena aggiornato a 3.0 e ho ottenuto il problema che avevi e risolto aggiungendo questo reindirizzamento di binding. se hai un riflettore .net probabilmente potresti vedere cosa ha questo riferimento, ma probabilmente è piuttosto accademico. – dove

4

Provare a disinstallare e reinstallare nuovamente AutoMapper.

Se nella tua soluzione sono presenti più progetti, è probabile che la versione 2.2.1.0 sia già installata in uno dei tuoi progetti. Ma l'ultima versione di AutoMapper è 3.0.0, ecco perché hai avuto problemi.

+0

Questo è interamente possibile. La ricontrollerò non appena riesco a lavorare di nuovo sul codice stasera. – ProfK

0

ho avuto lo stesso errore ed era in grado per risolvere impostando Abilita applicazioni a 32 bit true su App Pool

1

Problema:

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

Soluzione:

Add assemblyBinding a yur app.config file:

<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="AutoMapper" publicKeyToken="be96cd2c38ef1005" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.2.1.0" newVersion="3.3.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

Pulito, Rigenera soluzione e sorriso! :-)