TFSBUILD / MSBUILD и ПРОЕКТА Ссылка VS Ссылка на файл -- tfs поле с участием msbuild поле с участием projects-and-solutions поле с участием tfsbuild поле с участием project-reference пол Связанный проблема

TFSBuild/MSBuild and Project Reference vs File Reference


7
vote

проблема

русский

У нас есть большой VS-решение с использованием ссылок на проекты, которые строятся по сборке TFS, как так:

 <код> Solution - Project 1 - Project 2 - Project ... - Project N   

Потому что решение слишком велико, у нас есть несколько небольших решений, которые мы используем день в день:

 <код> SubSolution - Project 1 - Project 19   

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

Это затем продолжает разбить сборку TFS, который не может найти эти ссылки на файлы, потому что они еще не были построены (даже если проекты находятся в одном решении). Есть ли путь вокруг этого перетягивания войны между двумя типами ссылок. Какой правильный способ разделения ваших решений?

Английский оригинал

We Have a large VS solution using project references which is build by TFS Build like so:

Solution - Project 1 - Project 2 - Project ... - Project N 

Because the solution is too large we have several smaller solutions which we use day to day:

SubSolution - Project 1 - Project 19 

The problem is that developers working on SubSolution find that it is not building because the project references could not be found, so they change the projects to use file references.

This then goes on to break the TFS Build which cannot find these file references because they have not been built yet (Even though the projects are in the same solution). Is there a way around this tug of war between the two types of references. What is the correct way of splitting out your solutions?

</div
              
 
 

Список ответов

2
 
vote

Какой правильный способ разделения ваших решений?

Проверьте эту главу из Руководства TFS по узорам и AMP; Команда практики:

Глава 3 - Структурирующие проекты и решения в исходном управлении

Обратите особое внимание на эту заметку с сценарием «разделенного решения» (что я считаю, что вы на самом деле пытаетесь реализовать):

В отличие от предыдущих версий Visual Studio, Visual Studio 2005 полагается на MSBuild. Теперь можно создать структуры решения, которые не включают в себя все ссылки на проекты и все еще создают без ошибок. Пока главное решение было построено первое, генерируя двоичный вывод из каждого проекта, MSBuild может следовать ссылкам на проект за пределами ваших решений и успешно создавать. Это только работает, если вы используете ссылки на проекты, а не ссылки на файлы. Вы можете успешно создавать решения, созданные таким образом, от командной строки Visual Studio Build и от IDE, но не с сборкой команды по умолчанию. Чтобы успешно построить с помощью сборки Team, используйте основное решение, которое включает в себя все проекты и зависимости.

 

What is the correct way of splitting out your solutions?

Check out this chapter from the TFS guide by the Patterns & Practices team:

Chapter 3 - Structuring Projects and Solutions in Source Control

Pay special attention to this note to the "Partitioned Solution" scenario (which I believe you're actually trying to implement):

Unlike previous versions of Visual Studio, Visual Studio 2005 relies upon MSBuild. It is now possible to create solution structures that do not include all referenced projects and still build without errors. As long as the master solution has been built first, generating the binary output from each project, MSBuild is able to follow project references outside the bounds of your solution and build successfully. This only works if you use project references, not file references. You can successfully build solutions created this way from the Visual Studio build command line and from the IDE, but not with Team Build by default. In order to build successfully with Team Build use the master solution that includes all of the projects and dependencies.

</div
 
 
2
 
vote

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

На теме организации ваших сборки - как говорит Dmtrol, ссылки на проекты должны работать между решениями (до тех пор, пока цель уже построена, однако это также имеет место для ссылок на файлы).

Мой совет составит свои проекты в небольшие рабочие решения и использовать ссылки на проекты в этих решениях. Ваше основное файловое значение / сборку может использовать ссылки на проект тоже, однако, если вы найдете ссылки на проекты между меньшими решениями, слишком сложными для поддержания, вы можете использовать ссылки на файл вместо этого, и контролировать заказ на создание проекта или порядок построения проекта (доступен в рамках постановления по сборке проекта (доступен в пределах визуализации Студия, щелкнув правой кнопкой мыши на проекте в вашем решении).

 

Regardless of how you organise your build, developers should understand how references work, and be aware when they make changes to references that they shouldn't check those changes in unless they intended to make a change to the build process.

On the subject of organising your builds - as Dmytrol says, project references should work between solutions (As long as the target is already built, however that's also the case for file references anyway).

My advice would be to group your projects into small workable solutions and use project references within those solutions. Your main solution file / build can use project references too, however if you find project references between the smaller solutions too difficult to maintain you can use file references instead, and control the build order through project dependencies or the project build order (accessible within Visual Studio by right-clicking on a project in your solution).

</div
 
 

Связанный проблема

0  Получите один или несколько файлов из исходного контроля в папку TEMP  ( Get one or more files from source control explorer into temp folder ) 
Я работаю над проектами VFP, но наш контроль источника является TFS. Я хотел бы иметь возможность получить файлы из TFVC и перенаправить их из рабочего простр...

0  TFS со старой версией TFS-установленной истории  ( Tfs with old version tfs change set history ) 
У меня есть TFS On-Prom, в том, что имеется слишком много изменений. Теперь я использую Supply Team Services (VSTS) Visual Studio (VSTS), но я хочу интегриров...

76  Что такое Git, эквивалентные команды TFS Shalve / Unhelve? вишня?  ( Whats the git equivalent of tfs commands shelve unshelve cherry pick ) 
Я обнаружил, что полки / нерешительные команды в TFS очень удобны и очень просто в использовании. Что эквивалентно в Git? Вот сценарий в TFS: . Я внес изм...

0  SQL Server Edition включен в Team Foundation Server 2013  ( Sql server edition included with team foundation server 2013 ) 
Я пытаюсь определить, что будет установлено издание SQL Server Server 2013, если он установлен на Windows Server 2012 R2 с использованием стандартной конфигур...

0  Получить источник медленно в CI, когда проект сайта содержит много маленьких изображений  ( Get source slow in ci when a website project contains a lot of small images ) 
У меня есть проект сайта с большим количеством небольших изображений (более 15000), каждый раз, когда инструменты CI получают исходный код из TFS, займет очен...

3  Установите переменную среды из администрации агента по сборке агента в TFS  ( Set environment variable from the build agent administration ui in tfs ) 
В области администрирования агенты по сборке TFS можно ли установить переменные среды, которые будут использоваться при выполнении сборки? Большинство мо...

2  Миграция Project Portal Migration TFS 2008 до портала проекта TFS 2010  ( Migrate tfs 2008 project portal contents to tfs 2010 project portal ) 
Я установил большое количество контента (в основном библиотеки документов) на моем портале проекта TFS 2008 года, и были вынуждены обновление до TFS 2010 года...

1  PowerShell TFS Перечислите все файлы, которые были добавлены в течение определенного таймфрейма  ( Powershell tfs list all files which have been added within a certain timeframe ) 
Я использую Microsoft Team Foundation Server 2015 Power Tools. Я знаю, что для перечисления всех файлов, которые были удалены в TimeFrame, мы можем сделать чт...

14  Visual Studio показывает «Обновление состояния контроля источника» после установки ASP.NET MVC 4 BETA  ( Visual studio shows updating source control status after installing asp net mv ) 
После установки ASP.NET MVC 4 Beta, Visual Studio показывает «Обновление состояния контроля источника» на нижней левой части области состояния. Есть идеи? К...

24  Visual Studio Build Tests работает медленнее на TFS  ( Visual studio unit tests running slower on tfs build ) 
Мой проект имеет 1000+ узлов, которые, в локальной машине, все запускаются менее чем за 10 секунд. Но когда они работают по сборке TFS, некоторые тесты проход...

6  TFS API - Обновление поле задания  ( Tfs api updating a work item field ) 
Возможно ли обновить поле рабочего элемента с помощью TFS API? что-то вдоль этой строки: <код> WorkItemStore.GetWorkItem(Convert.ToInt32(current.WorkItemI...

0  Как создать проект InstallShield, используя Devenv обход MSBUILD в шаблоне сборки?  ( How to build installshield project using devenv bypassing msbuild in the build t ) 
<Сильные> IDE: Visual Studio Premium 2012 Недавно добавлена ​​ InstallShield Project для моего решения для генерации <код> setup.exe . Вручную, когда я ...

4  TFS повторно запустить слияние  ( Tfs re run merge ) 
Так, в TFS я пытался объединить одну ветку на другую - есть много файлов, нуждающихся в ручном объединении. Диалог придумал список конфликтов. Я работал чер...

0  Развертывание не может использовать VirtualNetWork Cryosite_VN_TST_02, который принадлежит региону  ( The deployment cannot use the virtualnetwork cryosite vn tst 02 that belongs to ) 
Я развернулся в Azure, используя сборку TFS. Создание не подскажет мне сообщение об ошибке с сообщением «Развертывание не может использовать виртуальную работ...

0  TFS Добавление нового проекта в проблему сбора  ( Tfs adding new project to the collection issue ) 
Я пытаюсь добавить новый проект в коллекцию по умолчанию. Я получаю следующее сообщение об ошибке. Я переименовал в «DealceCollection» на «CollectionNew» на п...

Связанный проблема

0  Получите один или несколько файлов из исходного контроля в папку TEMP 
0  TFS со старой версией TFS-установленной истории 
76  Что такое Git, эквивалентные команды TFS Shalve / Unhelve? вишня? 
0  SQL Server Edition включен в Team Foundation Server 2013 
0  Получить источник медленно в CI, когда проект сайта содержит много маленьких изображений 
3  Установите переменную среды из администрации агента по сборке агента в TFS 
2  Миграция Project Portal Migration TFS 2008 до портала проекта TFS 2010 
1  PowerShell TFS Перечислите все файлы, которые были добавлены в течение определенного таймфрейма 
14  Visual Studio показывает «Обновление состояния контроля источника» после установки ASP.NET MVC 4 BETA 
24  Visual Studio Build Tests работает медленнее на TFS 
6  TFS API - Обновление поле задания 
0  Как создать проект InstallShield, используя Devenv обход MSBUILD в шаблоне сборки? 
4  TFS повторно запустить слияние 
0  Развертывание не может использовать VirtualNetWork Cryosite_VN_TST_02, который принадлежит региону 
0  TFS Добавление нового проекта в проблему сбора 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.