Ik krijg de foutmelding
System.IO.FileLoadException : Kan bestand of assemblage niet laden 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' of een van zijn afhankelijkheden. De gelokaliseerde assembly's manifest definitie komt niet overeen met de assembly referentie. (Uitzondering van HRESULT: 0x80131040)
voor mijn CI build
Oplossing die ik probeerde
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"
culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
Het werkte ook niet
Deploy de juiste versie naar de CI machine
Dit vertelt je dat de assembly loader een andere versie van de Newtonsoft.Json
assembly heeft gevonden, die niet overeenkomt met de referentie die je in je project hebt aangemaakt. Om de assembly correct te laden, moet je of de assembly naast je gecompileerde code deployen, of de juiste versie van de assembly op de doelmachine installeren (d.w.z. in de GAC).
Alternatief: zorg ervoor dat de configuratie in het juiste bestand staat
Als u de huidige oplossing wilt behouden, en een assembly met een andere versie wilt laden, zorg er dan voor dat de configuratie die u gepost heeft in het juiste .config
bestand staat. Onthoud dat er geen xpto.dll.config
is, een DLL geladen door een applicatie gebruikt altijd het config bestand van de draaiende applicatie.
In mijn geval, na het downloaden van de assemblage en het toevoegen van de referentie aan het project, loste ik dit op door 'unblocking' de DLL alvorens de referentie aan het project toe te voegen.
Gebruik Windows verkenner, blader naar de DLL locatie, klik met de rechtermuisknop op de DLL en selecteer dan 'properties'. U'zult een 'unblock' knop vinden op een van de tabs en dan kunt u de verwijzing toevoegen en de assemblage zal correct laden.