Как гарантировать, что все проекты в решении c# используют одинаковые версии библиотеки сторонних разработчиков?

Я работал над решением с несколькими проектами, и я обновил Newtonsoft.Json в одном из проектов (библиотека классов). Это вызвало некоторые ошибки в другом проекте (an ASP.Net WebApi project), потому что ему также нужна ссылка на Newtonsoft.Json обновления.

ошибка была вызвана во время выполнения, а не во время компиляции, и мне пришлось вручную установить Newtonsoft.Json по каждому из проектов в рамках решения.

Install-Package Newtonsoft.Json

это заставляет меня задуматься, можно ли обновить все сторонние библиотеки на уровне решения?

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

Я хочу, чтобы Nuget загрузил библиотеки после извлечения решения из репозитория. Мне было интересно, можно ли:

  1. создайте новый проект в решении под названием Что-то вроде www.solution.com.thirdparty
  2. добавить ссылку на все стороннее программное обеспечение, используя из NuGet
  3. выставить все сторонние библиотеки через www.solution.com.thirdparty

Я не знаю, как я могу сделать третий шаг, и я бы также знал, есть ли лучший способ сделать это?

1 ответов


используйте пакеты на уровне решения, как описано в этой статье.

в качестве альтернативы вы можете посмотреть на пакет, Он имеет хороший транзитивный алгоритм разрешения зависимостей, который может работать для вас.