visual-studio msbuild nant

visual studio - ¿Cómo excluir el proyecto de la construcción en MSBUILD?



visual-studio nant (2)

Puede excluir proyectos en el nivel de la solución para una configuración de compilación específica utilizando el cuadro de diálogo Administrador de configuración en Visual Studio:

Luego, simplemente puede invocar msbuild en el archivo de solución especificando la configuración de compilación que se utilizará:

msbuild /property:Configuration=Release MySolution.sln

Necesito construir una solución pero excluir un proyecto. ¿Cómo debería hacerlo? Busqué mucho sobre este tema, pero nada podría ayudar.

La sección ItemGroup se eleva a la siguiente excepción:

Elemento no válido. Tarea desconocida o tipo de datos.

PropertyGroup también sube la excepción.

A continuación se muestra mi ejemplo de código:

<project name="TI 8.1.6 build script"> <ItemGroup> <Solution Include="${ROOT}/Core/TI Core.sln" Exclude="${ROOT}/Utilities/DTS Indexing Service/Tdi.Origami.IndexUpdaterServiceSetup/Tdi.Origami.IndexUpdaterServiceSetup.wixproj"/> </ItemGroup> ... </project>

Entonces, ¿alguien podría ayudarme?


Una solución sugerida por Enrico es la solución más versátil que funcionaría siempre. Una solución alternativa podría ser usar la tarea <MSBuild> directamente. Esto funcionará para usted si tiene todo el archivo de proyecto en un directorio particular, o puede enumerar fácilmente todos los proyectos que desea construir (es decir, la cantidad de proyectos en su solución no es muy grande).

Por ejemplo, este archivo msbuild creará todos los proyectos en su directorio actual, excepto un proyecto específico:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> <MyProjectReferences Include="**/*.*proj" /> <MyProjectReferences Exclude="Utilities/DTS Indexing Service/Tdi.Origami.IndexUpdaterServiceSetup/Tdi.Origami.IndexUpdaterServiceSetup.wixproj" /> </ItemGroup> <Target Name="BuildAllExceptWixProject"> <MSBuild Projects="@(MyProjectReferences)" Targets="Build" /> </Target> </Project>

Luego puede crear eso usando la línea de comandos msbuild <myproject> /t:BuildAllExceptWixProject