Vereisten: Het project moet veel externe SDK's verwijzen, en sommige daarvan verwijzen naar veelgebruikte DLL's (zoals :Newtonsoft.Json.dll), waardoor het hele project verschillende versies van dezelfde DLL moet verwijzen, en het project slechts één bestand met dezelfde gecompileerde DLL-resultaten zal uitvoeren.
Eenvoudige DLL-versieafhankelijkheidsproblemen kunnen hieronder worden genoemd:
Referentie:De hyperlink-login is zichtbaar.
Als de verwezen DLL niet alleen van een andere versie is, maar ook van de publicKeyToken, hoe moet deze dan worden opgelost? In het geval van Newtonsoft.Json.dll verwijst het project naar een bestand met een andere versie en publicKeyToken.
- Newtonsoft.Json.dll,versie:12.0.0.0,publicKeyToken:30ad4fe6b2a6aeed - Newtonsoft.Json.dll,versie:4.0.0.0,publicKeyToken:null
Een eenvoudige referentie-omleidingsinstelling lost het probleem niet op, de configuratie is als volgt:
Wanneer je een SDK-methode van derden aanroept die afhankelijk is van Newtonsoft.Json versie 4.0.0.0, krijg je de volgende foutmelding:
Het bestand of de assembly "Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null" of een van de afhankelijkheden is niet gelukt om te laden. De definitie van het gevonden assemblagemanifest komt niet overeen met de assemblagereferentie. (Uitzondering op HRESULT:0x80131040) Oplossing: Maak een nieuwe JSON4-map aan onder de bin-map, plaats de versie van Newtonsoft.Json.dll 4.0.0.0 onder deze map en pas de configuratie als volgt aan:
(Einde)
|