Követelmények: A projektnek sok harmadik féltől származó SDK-ra kell hivatkoznia, és néhány közülük néhány gyakran használt DLL-re (például :Newtonsoft.Json.dll-re hivatkozik), ami miatt az egész projekt ugyanazon DLL különböző verzióira hivatkozik, és a projekt csak egy fájlt ad ki ugyanazzal a DLL lefordított eredménnyel.
Az egyszerű DLL verziófüggőségi problémákat az alábbiakban lehet bemutatni:
Utalás:A hiperlink bejelentkezés látható.
Ha a hivatkozott DLL nemcsak egy másik verzióból származik, hanem a publicKeyToken is, hogyan kellene ezt megoldani? Newtonsoft.Json.dll esetében a projekt egy másik verziójú fájlra hivatkozik és publicKeyToken-re hivatkozik.
- Newtonsoft.Json.dll,version:12.0.0.0,publicKeyToken:30ad4fe6b2a6aeed - Newtonsoft.Json.dll,version:4.0.0.0,publicKeyToken:null
Egy egyszerű referencia-átirányítási beállítás nem oldja meg a problémát, a konfiguráció a következő:
Ha egy harmadik féltől származó SDK módszert hívsz, amely a Newtonsoft.Json 4.0.0.0-s verzióra épül, a következő hibát kapod:
Nem sikerült betölteni a fájlt vagy assembly "Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null" vagy valamelyik függőségét. A talált assembly manifest definíciója nem egyezik az assembly hivatkozással. (Kivétel a HRESULT:0x80131040) Megoldás: Hozz létre egy új JSON4 mappát a bin könyvtárban, helyezd el a Newtonsoft.Json.dll 4.0.0.0 verziót ebben a mappában, és módosítsuk a konfigurációt a következőként:
(Vége)
|