HDSoftware Skrevet 31. oktober 2014 Del Skrevet 31. oktober 2014 FOlkens.. Jeg oppgraderte EntityFramework i vår solution nå til EF6. Nå kjører ikek programmene våre lenger. Får denne: Could not load file or assembly 'EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Jeg har prøvd alt jeg kommer på. Jeg har brukt NUGET Management for hele solutionen og fjernet alle spor av gammel versjon. Nå ser jeg kun EF6. Alikevel så feiler det. Hjelp hjelp hjelp Lenke til kommentar
BlueEAGLE Skrevet 31. oktober 2014 Del Skrevet 31. oktober 2014 Programmene må vel kompileres mot det nye rammeverket ville jeg tro...Feilmeldingen sier jo klart og tydelig at den ikke finner entity framework versjon 4.4. Lenke til kommentar
ahw_ Skrevet 31. oktober 2014 Del Skrevet 31. oktober 2014 (endret) Kan kanskje være at noen assemblies ditt prosjekt er avhengig av, er avhengig av EF 4.4? Kan være verdt å prøve Assembly Binding Log Viewer: The Assembly Binding Log Viewer displays details for assembly binds. This information helps you diagnose why the .NET Framework cannot locate an assembly at run time. These failures are usually the result of an assembly deployed to the wrong location, a native image that is no longer valid, or a mismatch in version numbers or cultures. Ellers kan du også bruke noe som .NET Reflector eller CheckAsm til å sjekke hva som er avhengig av hva. Endret 31. oktober 2014 av ahw_ Lenke til kommentar
HDSoftware Skrevet 31. oktober 2014 Forfatter Del Skrevet 31. oktober 2014 Ja, det ser sånn ut. Åpnet dette i Reflector og ser følgende:// Assembly Reference EntityFramework Version: 4.4.0.0 Name: EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=<stort tall> Så ja, helt klart. Noe merkelig skjer her. Jeg har jo rekompillert alt dette i i prosjektet under references så er det EF6 så står. Dette er jo helt sykt. Kanskje jeg skal avinstallere hele EntityFramework og se om jeg får lagt det inn på nytt... Lenke til kommentar
HDSoftware Skrevet 31. oktober 2014 Forfatter Del Skrevet 31. oktober 2014 (endret) Ja, det ser sånn ut. Åpnet dette i Reflector og ser følgende: // Assembly Reference EntityFramework Version: 4.4.0.0 Name: EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=<stort tall> Så ja, helt klart. Noe merkelig skjer her. Jeg har jo rekompillert alt dette i i prosjektet under references så er det EF6 så står. Dette er jo helt sykt. Kanskje jeg skal avinstallere hele EntityFramework og se om jeg får lagt det inn på nytt... UHM! Dette var rart. Når jeg går videre med Reflector så går den til dette: // Assembly EntityFramework, Version 6.0.0.0 Location: C:\Data\Dev\Build\Debug\EntityFramework.dll Name: EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Type: Library Endret 31. oktober 2014 av HDSoftware Lenke til kommentar
ahw_ Skrevet 31. oktober 2014 Del Skrevet 31. oktober 2014 Hva med å søke etter "4.4.0.0" i alle tekst-baserte filer i prosjektmappa di? Bruker selv grepWin til slike ting. Lenke til kommentar
HDSoftware Skrevet 31. oktober 2014 Forfatter Del Skrevet 31. oktober 2014 Jada, og de finnes i massevis. Jeg har nå gjort følgende: Har fjernet alt som heter EntityFramework i Packages mappa. Går så igjennom alle app.config og packages.config og fjerner alt som har med EF der også. Så kjører jeg en kompilering og legger inn igjen EF på de prosjektene som krever det. For håpe dette skaper et kjørbart produkt Lenke til kommentar
TheHvidsten Skrevet 6. november 2014 Del Skrevet 6. november 2014 Du kan også prøve å legge inn "assemblyBinding" i app.config-fila. <configuration> <runtime> <assemblyBinding> <dependentAssembly> <assemblyIdentity name="<DLL NAVN>" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration> Slik jeg har sett dette i våre prosjekter så sier dette at for alle som ber om å bruke <DLL NAVN> fra versjon 0.0.0.0 til 3.0.0.0 så er det versjon 3.0.0.0 som skal brukes. Da vil prosjektet ditt kun ha én versjon av DLLen, og andre DLLer som er avhengig av andre versjoner vil bli omdirigert til den nyeste versjonen (f.eks. i ditt tilfelle at noen ber om versjon 4.4.0.0 og blir omdirigert til 6.0.0.0). Dette vil selvfølgelig kunne skape problemer hvis mye faktisk er fjernet fra den gamle men Microsoft pleier å være flinke til å være bakoverkompatible. "publicKeyToken" er jeg ikke helt sikker på hva blir brukt til. Jeg ser den er den samme på mange av våre assemblyBindings så det virker som det ikke er helt nødvendig å ha riktige tegn i det feltet. For sikkerhetsskyld kan du sikkert bruke den publicKeyToken som står i post #5. Lenke til kommentar
HDSoftware Skrevet 6. november 2014 Forfatter Del Skrevet 6. november 2014 Og dette var faktisk hele greia. Jeg bruker nemlig en Win32 exe fil som drar igang .NET komponentene. Tenkte ikke på at CONFIG fila faktisk er den som er knyttet til EXE fila og dermed funka det ikke før jeg ryddet i denne. Lenke til kommentar
BlueEAGLE Skrevet 9. november 2014 Del Skrevet 9. november 2014 Du har helt rett. Jeg skrev 'kompileres', og ikke konfigureres. Beklager. :/ Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå