Building MSBuild Projects in Parallel
CloudBees Accelerator cannot parallelize MSBuild project files. If you have multiple MSBuild projects, however, you can create a makefile to build them in parallel.
For example:
all: project1 project2
project1 msbuild myproject.csproj /t:build
project2: msbuild myproject.csproj /t:build
Then run:
emake –f makefile –-emake-emulation=nmake –-emake-cm<your cm>
For C++ projects, call devenv (or ecdevenv) to parallelize those projects down to the project item level.
If you use a top-level MSBuild script that builds separate projects, convert that to NMAKE in the format above to achieve parallelization under eMake.
Alternatively, you can use Electrify on the top-level MSBuild project file.
Using MSBuild to Build a Project Directly in Its Solution Context
When set to true
, the ECADDIN_USE_SOLUTION_IN_MSBUILD
environment variable lets you use MSBuild to build a project directly, but in the context of its solution, by generating an appropriate call to be sent to MSBuild. For example, when you build a C# project named WindowsApplication2 with project configuration Debug|AnyCPU, the generated makefile contains the following call to MSBuild:
"msbuild.exe" "WindowsApplication2.csproj" /t:build /p:Configuration="Debug",Platform="AnyCPU"
(Note that MSBuild expects there to be no space between Any
and CPU
.)
When you set the environment variable to true
, the command is changed to build the WindowsApplication2 project in solution configuration Debug|Mixed Platforms:
"msbuild.exe" "solution_0012.sln" /t:WindowsApplication2 /p:Configuration="Debug",Platform="Mixed Platforms"