2016-02-25 5 views
0

Фон: У нас есть одно .NET-решение, которое содержит несколько проектов, некоторые из них скомпилированы против .NET Framework, некоторые из них относятся к .NET Core (UWP). Мы используем Visual Studio Team Services (была Visual Studio Online) для непрерывного построения нашего решения.Как передать различные аргументы построения проектам одного решения

Задача: Проекты UWP требуют разных аргументов MSBuild и настроек платформы. Мы создали определение сборки в соответствии с приведенным ниже снижением экрана: решение построено сначала с использованием аргументов .NET. Затем для каждого проекта UWP у нас есть шаг MSBuild.

Задача: Каждый раз, когда мы добавляем, удаляем или переименяем проект UWP, мы должны обновить определение сборки. Мы хотели бы как-то выбрать проекты UWP автоматически, в идеале используя Visual Studio Build Step и без пользовательских сценариев. Есть идеи?

enter image description here

Работа Альтернативой: Первоначально, мы разбиваем решение на два (одно решение на платформе), и имел две разные Visual Studio построить события, работающие против каждого решения. Тем не менее, мы предпочитаем работать в одном решении.

ответ

2

Нет простого способа достичь этого без специального скрипта.

Вы можете пытаться создать MSBuild project file и добавить свои проекты в ней с отдельными аргументами, как следующее:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
<Target Name="Build"> 
    <MSBuild Projects="Project1.csproj" Properties=Arguments1/> 
    <MSBuild Projects="Project2.csproj" Properties=Arguments2/> 
</Target> 
</Project> 

Тогда вам просто нужно создать файл проекта в вашем определении сборки. Но это потребует обновления файла MSProject при добавлении/изменении проекта.

0

Шаг Msbuild поддерживает подстановочные знаки, поэтому вы можете установить его для построения **/*.uwp.csproj, если ваши проекты следуют этому шаблону именования.