Пакетная компиляция только одного проекта в решении

Скажем, у меня есть решение, которое содержит три проекта

SolutionA
ProjectA
ProjectB
ProjectC

Целое решение собирается построить как AnyCPU. Тем не менее, ProjectB — это управляемый проект C ++, и я хотел бы, чтобы он (и только он) собирал Win32 и x64. Я использую TFS для выполнения этих сборок по ночам. Есть ли хороший способ сделать это?

1

Решение

Сам файл .sln не может создавать один и тот же проект в двух конфигурациях или платформах одновременно. Один из возможных обходных путей — создать собственный проект, который будет вызываться .sln и дважды вызывать проект A с двумя различными значениями параметра Platform. Пользовательский файл проекта будет выглядеть так:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
</PropertyGroup>
<Target Name="build">
<MSBuild Project="ProjectA.vcxproj" Properties="Platform=Win32;Configuration=$(Configuration)" />
<MSBuild Project="ProjectA.vcxproj" Properties="Platform=x64;Configuration=$(Configuration)" />
</Target>
</Project>

Чтобы это работало, вам нужно сделать следующее. 1. В решении отключите сборку ProjectA (или удалите ее из .sln). 2. Добавьте ваш собственный проект в .sln.

Кроме того, помните, что вы не можете передать явный параметр / p: Platform

1

Другие решения


По вопросам рекламы [email protected]