У меня есть такой сценарий:
- COM-вызов из приложения MS Access с помощью VBA
- Вызов находится в библиотеке С#, которую мы создаем, которая имеет ссылку на Newtonsoft.Json v9
- Библиотека использует пакеты nuget со своей зависимостью от Newtonsoft.Json v6 (скажем, Microsoft.AspNet.WebApi.Client)
- Зависимая библиотека внутри своего собственного кода Blackbox взрывается, когда они пытаются использовать Newtonsoft.Json(или любую библиотеку, которая не является той же версией, на которую ссылается наша библиотека С#)
Ошибка:
Could not load file or assembly 'Newtonsoft.Json, Version=6.0.4.0, Culture=neutral,
PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies.
The system cannot find the file specified.
Я ожидаю, что мне нужно что-то вроде привязки переопределения dependAssembly где-то, как то, что вы используете в .Net, чтобы указать, как разрешать эти типы вещей, но я ничего не нашел в своем поиске, который говорит мне, где это может понадобиться для ссылочной сборки в COM, чтобы поднять ее.
Стоит отметить, что в случае с Newtonsoft.Json понижение до 6.0.4 не является исправлением, потому что в различных пакетах, которые мы используем, есть несколько ссылок на Json.Net, поэтому я не могу просто выберите одну версию.
Кроме того, в приложении .NET-тестера, которое мы использовали во время разработки библиотеки, все работает так, как ожидалось, и ссылки сами используют правильные версии. Поэтому я считаю, что мне нужно выяснить, как сообщить COM, что он ищет.
Любая помощь приветствуется! Спасибо.