2015-03-19 5 views
0

Я пытаюсь переместить .NET CI из Nant в MSBuild, чтобы обойти ограничения задачи Nant Solution, но я не могу воспроизвести ссылочное поведение сборки Nant. Задача решения Nant просматривает проекты VS для двоичных ссылок и преобразует их в ссылки на проекты, если проект включен внутри решения. В моей организации разработчики работают с бинарными ссылками на базовые библиотеки, но во время ночных сборников я хотел бы построить все из источника. Я могу создать файл решения со всеми проектами, изменяющими выходной каталог, кажется, что я должен указать порядок сборки вручную, большую работу. Есть способ сделать такое, или я делаю что-то неправильно? Я хотел бы использовать этот сценарий с TeamCity или CruiseControl.NetРепликация решения проблемы с решением задачи Nant Solution с MSBuild

<solution configuration="release" outputdir="C:\output\bin"> 
    <projects> 
    <include name="ProjectA.csproj" /> 
    <include name="ProjectB.csproj" /> 
    <include name="ProjectC.csproj" /> 
    </projects> 
</solution> 

Если ProjectA ссылка projectB.dll и ProjectB ссылка projectC.dll Nant выполняет сборку в следующем порядке: ProjectC-ProjectB-Projecta, используя в качестве ссылаться на выходные данные скомпилированных проектов.

+0

Пожалуйста, покажите нам код –

+0

Добавлен образец сценария. –

ответ

0

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

Обычно каждый проект имеет папку «lib», и эта папка известна. Получите исходный код из всех проектов, скомпилируйте C и скопируйте его в lib из B и так далее. Это действительно ручная задача, но зависимости не так сильно меняются.

Для более автоматизированным способом, может быть, следующая ссылка может помочь вам http://blog.dantup.com/2012/05/free-dependency-graph-generation-using-powershell-and-yuml/

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

+0

Спасибо, «ручное» решение должно быть возможным, но кроме целевого каталога есть также порядок компиляции, очень тяжелая работа, если у вас много проектов. Я попытаюсь исследовать вторую идею :-) –

 Смежные вопросы

  • Нет связанных вопросов^_^