Wymagania: Projekt musi odwoływać się do wielu SDK firm trzecich, a niektóre z nich będą odwoływać się do powszechnie używanych DLL (takich jak :Newtonsoft.Json.dll), co powoduje, że cały projekt będzie odwoływał się do różnych wersji tego samego DLL, a projekt wygeneruje tylko jeden plik z tymi samymi wynikami skompilowanymi przez DLL.
Proste problemy z zależnością wersji DLL można omówić poniżej:
Odniesienie:Logowanie do linku jest widoczne.
Jeśli wspomniana DLL jest nie tylko innej wersji, ale także publicKeyToken, jak powinno się to rozwiązać? W przypadku Newtonsoft.Json.dll projekt odnosi się do pliku o innej wersji i publicKeyToken.
- Newtonsoft.Json.dll,version:12.0.0.0,publicKeyToken:30ad4fe6b2a6aeed - Newtonsoft.Json.dll,version:4.0.0.0,publicKeyToken:null
Proste ustawienie przekierowania odniesienia nie rozwiązuje problemu, konfiguracja wygląda następująco:
Gdy wywołasz metodę SDK firm trzecich, która opiera się na wersji Newtonsoft.Json 4.0.0.0, otrzymasz następujący błąd:
Nie udało się załadować pliku lub asemblera "Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null" ani jednej z jego zależności. Definicja znalezionego manifestu asemplarza nie odpowiada referencji do asemblera. (Wyjątek od HRESULT:0x80131040) Rozwiązanie: Utwórz nowy folder JSON4 w katalogu bin, umieść wersję Newtonsoft.Json.dll 4.0.0.0 w tym folderze i zmodyfikuj konfigurację w następujący sposób:
(Koniec)
|