2013-05-07 51 views
11

dopo la firma del terzi assemblee e aggiungendoli al GAC sto ottenendo l'errore sotto: anche l'Assemblea Binder voce del registro mostra this errorLa definizione manifest di assembly individuato non corrisponde al riferimento all'assembly. (Eccezione da HRESULT: 0x80131040)

si dice assemblee mismatching non è sicuro come mistnaching come ho cancellato tutti gli oggetti obj e bin fold e batch hanno compilato l'applicazione + reimportato le DLL.

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\11.0\WebDev.WebServer40.exe 

--- A detailed error log follows. 
=== Pre-bind state information === 
LOG: User = AKBARCA\user 

LOG: DisplayName = ClubStarterKit.Core, Version=3.0.1.0, Culture=neutral, PublicKeyToken=null 
(Fully-specified) 

LOG: Appbase = 

file:///C:/Users/user/Desktop/NhibernateMediumTrust/NhibernateMediumUpgrade/direct/clubstar 

terkit v3 preview/ClubStarterKit.Web/ 

LOG: DEVPATH = C:\ProgramData\Red Gate\.NET Reflector\DevPath 

LOG: Initial PrivatePath = 

C:\Users\user\Desktop\NhibernateMediumTrust\NhibernateMediumUpgrade\direct\clubstarterkit v3 preview\ClubStarterKit.Web\bin 
Calling assembly : ClubStarterKit.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. 

risposta

29

Dalla mia esperienza, questo accade, di solito una volta che hai pubblicato la tua app e quando hai diverse versioni di pacchetti di nuget in gioco. Se questo sembra essere la vostra situazione così, il modo migliore che ho trovato per risolvere il problema è quello di fare clic destro la soluzione (non i singoli progetti) e scegliere "Gestione pacchetti Nuget". Quindi, individuare l'assembly all'origine nei pacchetti installati. Probabilmente lo vedrai elencato più volte. Fai clic su "Gestisci" su ciascuna delle versioni precedenti del pacchetto e deseleziona tutti i tuoi progetti. Una volta solo l'ultima versione del pacchetto rimane nell'elenco. Fare clic su "Gestisci" su questo e ricontrollare eventuali progetti che richiedono il pacchetto. Ciò essenzialmente li aggiornerà tutti per utilizzare la stessa versione del pacchetto e dovrebbe risolvere l'errore di disallineamento.

+0

"individuare l'assembly all'origine nei pacchetti installati" nessun assembly o pacchetto è elencato o installato in Gestisci pacchetti di Nuget. Fornisce solo l'opzione per installare Jquery, Entityframwork.etc .. –

+0

Hai fatto clic sul link "Installato" sulla sinistra, corretto? Hai numeri di pagina in fondo alla lista? –

+1

Questi errori sono completamente diversi da quelli che hai postato nella tua domanda. Quelli * letteralmente * significano che al tuo progetto manca quell'assemblea. Basta aggiungere il riferimento e sei bravo. –

5

ho affrontato problema simile. Nel mio caso, stavo avendo più progetti nella mia soluzione.

Uno dei progetti si riferiva EntityFramework 4.0 e che il progetto era in fase di cui in un altro progetto, che si riferiva a EntityFramework 5.0. Li ho sincronizzati e il problema è scomparso.

1

Quando ho avuto questo problema in passato, ho cancellato tutte le dll del mio progetto dal gac, ho ricostruito la soluzione, ho fatto iisreset ed è stato risolto.

3

Hum ... ho di fronte qualcosa di simile con lo stesso messaggio di errore.

Nel mio caso ho aggiornato manualmente la versione delle assemblee.

The error message

Nell'assemblea si fa riferimento ho avuto un'altra versione ...

Così, ho aggiornato nel web.config.

Properies of the DLL

Questo risolto il mio problema.

tuo === Pre-bind state information === sembra incompleto. Generalmente mostra l'esecuzione e l'ultima riga mostra l'errore, quindi possiamo aiutare solo a condividere le nostre esperienze. Esempio: Last line of the LOG info

Spero che qualcun altro di fronte a questo problema è risultato utile.

2

Nel mio caso, l'errore si verifica quando la versione specificata in <bindingRedirect> di web.config dell'assembly dipendente (ad esempio Newtonsoft.Json) non corrisponde alla versione effettivamente presente nella cartella bin. Una volta aggiornato il numero di versione in web.config, il problema è risolto.

screenshot of web.config

0

ho ottenuto questo errore utilizzando FASTjson:

_jsonConfig = fastJSON.JSON.ToObject<jsonConfig>(jsonConfigFileContents);

E 'fallito su questa linea:

Type t = Type.GetType(typename);

che causa un'eccezione in Sy stem.RuntimeTypeHandle.GetTypeByName


Il problema era una differenza nel file JSON rispetto al modello di oggetti JSON.

La soluzione è quella di ri-salvare il modello di oggetti JSON in un file, ad esempio:

string jsonSettings = fastJSON.JSON.ToJSON(JSONObjectModel); 
File.WriteAllText(JSONFilePath, jsonSettings); 
0

Un modo per risolvere questo potrebbe essere, andando sotto "Gestione pacchetti Nuget per Solution" facendo clic destro nella soluzione explorer. Una volta lì, vai su "Consolida" e trova il pacchetto che causa i problemi. Assicurarsi che tutti i progetti all'interno della soluzione utilizzino la stessa versione.

enter image description here

0

ho avuto una causa diversa: nel mio caso, avevo usato varie versioni del pacchetto NuGet in precedenza, e ho avuto un app.config che per qualche motivo era stata generata automaticamente con questo tipo di contenuti:

<dependentAssembly> 
    <assemblyIdentity name="Microsoft.Extensions.DependencyInjection" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.1.0" /> 
    </dependentAssembly> 

Quindi ho installato solo la versione 1.1.0.0, ma a causa di questa istruzione di reindirizzamento, ha cercato la versione 1.1.1.0 anche se Visual Studio aveva installato il nuget per 1.1.0.0. Cambiare la nuova versione su 1.1.0.0 risolta tutto:

<dependentAssembly> 
    <assemblyIdentity name="Microsoft.Extensions.DependencyInjection" publicKeyToken="adb9793829ddae60" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.0.0" /> 
    </dependentAssembly> 
Problemi correlati