Разрешение нескольких конфликтующих версий System.Web.Mvc при использовании NuGet в качестве источника пакета
У меня есть проблема с проектом, находящим несколько версий одной и той же сборки. System.Web.Mvc
например:
Я хочу убедиться, что наши проекты MVC никогда не найдут такой устаревший dll
из любой точки, кроме источников NuGet.
Я понимаю, что не стоит удалять конфликтующие версии из системы, поскольку многие приложения могут зависеть от них. Например, этот был найден в C:\Program Files (x86)
Обновить:
Так как мы используем NuGet, я изменил:
Project > Properties > Build > Output > Output path:
в C:\Temp\Drop
в каждом проекте (у нас есть несколько проектов библиотеки переносимых областей), а затем
Project > Properties > Reference Paths
и добавил C:\Temp\Drop
И проблема ушла.
Будет ли это правильным способом или я просто открываю еще одну банку с червями здесь?
1 ответ
Посмотрите следующую статью, связанную с привязкой сборки и проверкой, это довольно хорошо:
Проверьте эту статью тоже.
Существует полная иерархия, которая используется для поиска сборки, для строго именованных сборок GAC будет на первом месте, в вашем случае вы используете сборку со строгим именем. Как объясняется в статье, вы должны иметь возможность направлять ваше приложение к правильной версии сборки во время выполнения.