TFS: объединение файлов .csproj между двумя ветвями, которые имеют ссылки на проекты между двумя ветвями - PullRequest
0 голосов
/ 05 июня 2018

У меня проблема с объединением ветки dev в основную ветку, когда файлы проекта .csproj в этих ветвях имеют ссылки на другие проекты в указанной ветке.Например, представьте следующую структуру управления исходным кодом TFS:

  • Веб-проект 1 (командный проект TFS)
    • Ветвь разработчика
      • MyWebsite.csproj
    • Основная ветвь
      • MyWebsite.csproj
        • Веб-проект 2 (командный проект TFS)
    • Dev Branch
      • MyWebsite2.csproj
    • Main Branch
      • MyWebsite2.csproj
  • Проект базы данных (командный проект TFS)
    • Ветвь разработчика
      • MyDatabase.csproj
    • Основная ветвь
      • MyDatabase.csproj
        • Другая общая библиотека (групповой проект TFS)
    • Dev Branch
      • MyClassLibrary.csproj
    • Основная ветвь
      • MyClassLibrary.csproj

На самом деле структура немного сложнее, чем приведенная выше.Есть больше проектов, которые имеют ту же структуру филиалаКонечно, проблема, которая должна быть решена, одна и та же.

Ветви Dev проекта веб-сайта ссылаются на ветки базы данных и общих проектов Dev, а основные ветви проекта веб-сайта ссылаются на базу данных и основные ветви Common Project.Например, ссылка в файле MyWebsite.csproj может быть такой:

    <ProjectReference Include="..\..\Database Project\Dev Branch\MyDatabase.csproj">
  <Project>{312ced42-f890-4d64-b27d-9ae53a42304c}</Project>
  <Name>MyDatabase</Name>
</ProjectReference>

Итак, вы вносите изменения в ветви dev, а файлы .csproj в ветви dev правильно ссылаются на другие.файлы csproj в ветке dev;но когда вы собираетесь объединить ветку dev с основной веткой, файлы .csproj пытаются обновить ссылки из ветки trunk на ветку dev.

Как лучше всего решить эту проблему, чтобыкогда вы объединяетесь из dev в trunk, транковые проекты по-прежнему правильно ссылаются на другие транковые проекты и не обновляются до ссылок на dev-ветки?

edit в поисках ненулевого предложения иЯ не могу объединить их под одной ветвью, потому что фактическая структура гораздо сложнее, чем указано выше.Есть 3 отдельных веб-приложения в 3 отдельных командных проектах TFS, которые ссылаются на несколько из этих общих библиотек, которые также находятся в своих собственных проектах TFS.И тогда у каждого из этих командных проектов есть dev и основные ветки.

1 Ответ

0 голосов
/ 05 июня 2018

Если эти вещи имеют версии отдельно, прекратите полагаться на ссылки на проекты.Превратите их в пакеты NuGet, опубликуйте их в ленту NuGet и используйте ссылки NuGet для восстановления правильной версии.

Если эти вещи не имеют версий отдельно, поместите их все в одну ветку и полагайтесь на относительныепути к ссылкам вашего проекта, которые не включают имя папки ветви.

...