TFS / msbuild, создание ссылок на проекты - PullRequest
0 голосов
/ 11 марта 2019

Я изо всех сил пытаюсь получить Azure Devops Server 2019 (на прем), чтобы создать мою сложную настройку проекта.

У меня есть несколько решений, которые создают различные приложения BizTalk. Некоторые из этих решений ссылаются на некоторые проекты в других решениях / репозиториях. Это прекрасно работает в Visual Studio (при условии, что все называют свои репозитории по умолчанию, что они и делают).

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

Хотя решение 1 будет успешно скомпилировано, когда дело доходит до решения 2, задачи msbuild не будут ссылаться на выходные данные проектов, которые были включены в качестве ссылки на проект в решении.

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

Объединение всего в один большой файл супер-решения невозможно.

Я хочу, чтобы msbuild ссылался на проекты, которые уже были созданы на предыдущем шаге, как ссылки на проекты. Но msbuild - сложный зверь, и я не могу придумать, как этого добиться.

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

Ответы [ 2 ]

0 голосов
/ 22 июня 2019

Я наконец-то вернулся к этому и провел еще несколько экспериментов.

Единственный способ, которым я вижу, чтобы получить TFS / msbuild / ссылаться на результаты других проектов, это пометить их в конфигурации сборки решения.для сборки.

Теперь, если вы сделаете это в Visual Studio и попробуете создать решение, в котором есть проекты из другого решения, то сборка завершится неудачей, если предыдущее решение еще не было полностью построено (как и другое в цепочке).зависимости не будут построены).Это имеет смысл.

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

Проблема, конечно, в том, что он несовместим с Visual Studio.Таким образом, у меня есть дополнительная настройка определения «Сборка» в каждом файле Решения, в которой настроены все проекты для сборки.

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

0 голосов
/ 12 марта 2019

TFS / msbuild, ссылки на строительные проекты

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

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

Проверьте информацию здесь:

Git иСсылки на проекты Visual Studio

Кроме того, решение, которое мы используем сейчас, заключается в том, чтобы поместить общий код в пакет NuGet .Затем вы можете использовать пакет из любого репозитория, и вам не нужно будет выполнять какие-либо нестабильные настройки git и сохранять контроль доступа в том виде, в каком они должны быть.

Надеюсь, это поможет.

...