Две зависимые версии newtonsoft.json - PullRequest
2 голосов
/ 13 марта 2019

У меня есть проект, в котором мне нужно иметь две разные версии newtonsoft.json.Я пытался использовать codeBase следующим образом:

        <dependentAssembly>
          <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
          <codeBase version="10.0.0.0" href="dll\newtonsoft\10.0.3\Newtonsoft.Json.dll"/>
          <codeBase version="12.0.0.0" href="dll\newtonsoft\12.0.1\Newtonsoft.Json.dll"/>
        </dependentAssembly>

Но теперь я получаю «Обнаружены конфликты между различными версиями одной и той же зависимой сборки».исключение.

Я не уверен, какая версия должна быть в проектах. Ссылки, VS автоматическая установка версии в этом.Надеюсь, что кто-нибудь может помочь мне в этом.

1 Ответ

0 голосов
/ 13 марта 2019

Что вам нужно сделать, так это удалить одну из них, вероятно, более старую. Однако, если вы удалите это, umbraco, очевидно, перестанет работать, потому что ожидает, что он там будет, верно? Решение состоит в том, чтобы добавить перенаправление привязки к вашему web.config , как указано здесь . Используйте диапазон для атрибута oldVersion, чтобы при попытке привязки к версии 0.0.0.0–12.0.1 использовалась ссылка 12.0.1.

Обратите внимание, что это не гарантированно сработает для каждой ссылки, потому что, если произошли критические изменения между 10 и 12.0.1, у вас будут проблемы, но в идеале это будет поймано во время компиляции, а не во время выполнения (если ваш собственный код напрямую ссылается на него). Если это не ваш собственный код (потому что до времени выполнения не будет ошибок), вам нужно убедиться, что он работает должным образом во время выполнения.

...