Dll TFS API разных версий (16,15,14) не работают в одном проекте

У меня есть один проект в решении, в котором я использую DLL TeamFoundation версии 15, а в другом проекте я использую DLL TeamFoundation версии 16. В моем третьем проекте я хочу использовать эти два проекта, которые имеют две разные версии DLL TeamFoundation. , но я не умею им пользоваться. это дает мне ошибку:

Не удалось загрузить файл или сборку Microsoft.TeamFoundation.Client, Version = 15.0.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a или одну из его зависимостей.

Также появляется предупреждение. Обнаружены конфликты между различными версиями Microsoft.TeamFoundation.Client, которые не могут быть разрешены.

Как я могу использовать две разные версии dll teamfoundation в одном проекте.

Требуемые dll:

Microsoft.TeamFoundation.Client
Microsoft.TeamFoundation.Common
Microsoft.TeamFoundation.WorkItemTracking.Client
Microsoft.TeamFoundation.WorkItemTracking.Common

По запросу я делюсь кодом, который использую:

 private void connectToServer(string serverName)
    {
        TfsTeamProjectCollection teamProjectCollection = new TfsTeamProjectCollection(new Uri(tfsServerName));
        teamProjectCollection.Connect(ConnectOptions.None);
    }
   

Любая помощь приветствуется. Заранее спасибо.


person Shweta Paatil    schedule 08.10.2020    source источник
comment
Почему ты? Вы можете использовать только одну версию для всех проектов. Или используйте Binding Redirect для целевой версии 1 независимо от того, для чего был скомпилирован код. Только при развертывании проекта в экземпляре Visual Studio или Azure DevOps Server версия должна совпадать. Если для автономной работы нет необходимости иметь разные версии, фактически рекомендуется последняя. Если вам действительно нужна поддержка нескольких версий, ознакомьтесь с этим проектом, в котором для решения этой проблемы используются условные ссылки: github.com/ tfsaggregator / tfsaggregator   -  person jessehouwing    schedule 08.10.2020
comment
Рекомендуемый подход - использовать NuGet для извлечения требуемых зависимостей и не использовать какие-либо прямые зависимости сборки.   -  person jessehouwing    schedule 08.10.2020
comment
Привет, Светлана Паатил, вы последовали предложению jessehouwing (используйте NuGet для установки необходимых зависимостей)? Вы смогли решить?   -  person PatrickLu-MSFT    schedule 15.10.2020


Ответы (1)


Вы можете переключить свои проекты на использование одной распространенной версии DLL TeamFoundation. Удалите текущие ссылки на локальные библиотеки DLL TeamFoundation и добавьте ссылку на пакет NuGet: Microsoft.TeamFoundationServer.ExtendedClient

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

person Shamrai Aleksander    schedule 04.11.2020