Как мне настроить сценарий MSBuild для использования набора внешних каталогов в файлах csproj при создании всего решения?

Я не уверен, как я могу заставить сценарий MSBuild использовать выходной путь, значения outputdirectory из файлов CSproj. Я видел примеры, когда я устанавливал путь вывода в MSscript, но при этом весь вывод выводился в одну большую папку. Я хочу, чтобы отдельные проекты имели свои собственные пути вывода, а MSbuild создавал решение таким образом, чтобы вывод для проектов создавался в соответствующих каталогах вывода. Спасибо.


person Bladerunner    schedule 08.05.2015    source источник
comment
Не устанавливайте OutputPath при вызове msbuild.exe, тогда следует использовать значение из проекта.   -  person Sayed Ibrahim Hashimi    schedule 09.05.2015


Ответы (2)


Это не простой способ. Один из вариантов - расширить MSBuild и заставить его копировать выходные данные каждого проекта в общую папку.

Если вы посмотрите на файл Microsoft.Common.Targets в каталоге c: \ Windows \ Microsoft.Net \ Framework \ v4. * \, Вы увидите, как он загружает файл настраиваемых целей как в начало, так и в конец этой папки. Если вы добавите Custom.After.Microsoft.Common.Targets в папку C: \ Program Files (x86) \ MSBuild \ v4 \, вы можете загрузить файл, например $ (SolutionDir) \ Solution.targets. Это позволит вам расширять каждое решение по-разному, и вы можете добавлять любые настраиваемые действия в каждое решение, применимое к каждому проекту. Я использую это, и он отлично работает.

person mageos    schedule 09.05.2015

Спасибо за ответы, ребята. Я нашел способ запустить решение без указания конкретной выходной папки. Мне пришлось исправить путь к выходной папке в / bin в csprojs, а затем запустить MSbuild с решением, чтобы получить эти пути из csprojs и встроить вывод в эти папки.

person Bladerunner    schedule 22.05.2015