The easiest approach in my experience is to use NAnt to invoke MSBuild and get MSBuild to create the solution file itself. An example is the Protocol Buffer File file .
I am using NAntContrib which has msbuild task:
<property name="nantcontrib-dir" value="${path::combine(nant::get-base-directory(), '../../NAntContrib')}" overwrite="false" /> <loadtasks assembly= "${path::combine(nantcontrib-dir, 'bin/NAnt.Contrib.Tasks.dll')}" /> ... <target name="build" description="Builds all C# code"> <msbuild project="${src}/ProtocolBuffers.sln"> <property name="Configuration" value="${build-configuration}" /> </msbuild> </target>
source share