Где разместить сторонний код в Team Foundation Server - PullRequest
0 голосов
/ 18 января 2012

У меня возникли проблемы с поведением автоматической проверки проекта VS2010 (Файл -> Управление исходным кодом -> Открыть из управления исходным кодом).Речь идет конкретно о Microsoft Unity, но обычно о структурировании общих зависимостей.

Предположим, что эта структура TFS

$/                                                
    Project1/
    Project2/
    Microsoft/
        UnityQuickStarts/
        UnitySource/
            Lib/
            Source/
                Common/
                Unity/
                    Src/
                    Tests/
                Unity.Configuration/
                Unity.Interception/
                Unity.Interception.Configuration/
                Unity.Silverlight/

Предположим, что в $/Project1 есть Project1.sln и Project1.vbproj, которыеимеет ссылку на проект $/Microsoft/UnitySource/Source/Unity/Src/Unity.2010.csproj.

Когда я запрашиваю, чтобы VS2010 открыл решение Project1.sln из Source Control, ему удается получить проект Unity, но только его часть.В частности, он не осознает, что в проекте $/Microsoft/UnitySource/Lib есть двоичные зависимости, и не осознает, что в $/Microsoft/UnitySource/Source/Common есть необходимый файл кода.Они расположены над корнем проекта Unity.

Точная структура папок зависит от того, добавляю ли я проект Unity из системы контроля версий в существующее решение или открываю все решение.

Единственный способ заставить его работать - это вручную добавить проект $/Microsoft/UnitySource в рабочую область и «Получить последнюю версию».Оттуда я могу добавить проект Unity.2010.csproj к решению, и все будут довольны, по крайней мере, до тех пор, пока мне не понадобится снова получить проект, когда TFS не получит все файлы.

Итак, сделали паттерны Micrsoftи группа специалистов-практиков создают структуру проекта, которая плохо работает с TFS / VS2010, или, более вероятно, я неправильно структурирую проекты?Unity может использоваться как Project1, так и Project2, поэтому не представляется целесообразным использовать его в обоих проектах.

Спасибо.

ОБНОВЛЕНИЕ: Уточнениевопрос: общий файл решения для Unity $\Microsoft\UnitySource\Source\Unity.2010.sln.Если я прошу VS2010 открыть это решение из системы контроля версий, он получит только проект Source и его дочерние элементы.В частности, проект $\Microsoft\UnitySource\Lib отсутствует, поэтому в Unity отсутствует одна из его зависимостей, Microsoft.Practices.ServiceLocator.dll.

Есть ли у TFS или VS2010 способ «управлять» этими внешними зависимостями?Нужно ли размещать эти общие зависимости над / рядом с другими проектами (как это сделала команда p & p с Unity) и учитывать тот факт, что TFS / VS2010 не «делает правильные вещи», вручную назначая правильное сопоставление папок?

...