Meik,
support for compiling with the <solution> task is still in
development... we need to ensure that our projects (including numerous
C++ projects, both managed and unmanaged, plus projects that have been
upgraded from VC6 and imported into solutions) are built identically to
Visual Studio...[1] to deal with this I made a small utility build file
to perform the compilation.
Call the file with <nant> and use the properties as described in the
build file (I think they're up to date...). There's a known bug in that
the build will fail if the 'build.log' property isn't set (<arg> in exec
doesn't lazily-evaluate its value) It's simple enough to fix if you
don't require logging to a file.
If updated versions of the solution task still don't work for you, try
using devenv.com for compilation... NAnt can still offer a lot above
compilation to improve your entire build process.
-T
[1] We're coming up to a couple of releases... after they're out of the
way this requirement should be relaxed to requiring that all of the
tests run successfully, since we'll have longer to perform regression
testing.
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of
> Meik Schuetz
> Sent: Tuesday, 13 July 2004 5:30 PM
> To: [EMAIL PROTECTED]
> Subject: RE: [Nant-users] Project with GUID 'xxx' must be
> included for the build to work error
>
> Hello all,
>
> Before I begin, I have to confess that I only started working
> with Nant some days ago and I'm pretty unsure about how it
> works and what its possibilities are. However, I encountered
> a problem that keeps me away from continuing implementing
> Nant and further learning; I already looked up the
> mail-archive and notices that I'm not alone having this issue:
>
> Project with GUID '{737B3135-069E-4C5B-9615-7E641EB3F5A3}'
> must be included for the build to work.
>
> I tried to lookup the GUID in all source folders, but no
> luck; I compared the GUID's of the referenced project with
> the project file that references it and it does match, but
> still, it is different from the GUID Nant is complaining. Is
> there something that I can do?
>
> Kind regards
> Meik
Disclaimer Message:
This message contains confidential information and is intended only for the
individual(s) named. If you are not the named addressee you should not disseminate,
distribute or copy this e-mail. Please immediately delete it and all copies of it from
your system, destroy any hard copies of it, and notify the sender. E-mail transmission
cannot be guaranteed to be secure or error-free as information could be intercepted,
corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. To the
maximum extent permitted by law, Immersive Technologies Pty. Ltd. does not accept
liability for any errors or omissions in the contents of this message which arise as a
result of e-mail transmission.
<?xml version="1.0" ?>
<project name="MS Visual Studio targets">
<property name="devenv.exe" value="devenv.com" />
<!-- Parameters:
build.path: (required) The folder containing the solution being built
build.solution: (required) The filename of the solution being built
build.target: (required) Specifies a target to be built (eg- Debug)
build.log: (optional) Specifies the name of the log file for build output
devenv.path: (optional) Specifies the location of ${devenv.exe}, overriding
the system PATH
-->
<target name="clean">
<if test="${property::exists('devenv.path')}">
<exec program="${devenv.exe}" workingdir="${build.path}" basedir="${devenv.path}">
<arg value="/clean" />
<arg value="${build.target}" />
<arg value="${build.solution}" />
</exec>
</if>
<ifnot test="${property::exists('devenv.path')}">
<exec program="${devenv.exe}" workingdir="${build.path}">
<arg value="/clean" />
<arg value="${build.target}" />
<arg value="${build.solution}" />
</exec>
</ifnot>
</target>
<target name="build">
<if test="${property::exists('devenv.path')}">
<echo message="Calling devenv in ${devenv.path}" />
<exec program="${devenv.exe}" workingdir="${build.path}" basedir="${devenv.path}">
<arg value="${build.solution}" />
<arg value="/build" />
<arg value="${build.target}" />
<arg value="/out" if="${property::exists('build.log')}" />
<arg value="${build.log}" if="${property::exists('build.log')}" />
</exec>
</if>
<ifnot test="${property::exists('devenv.path')}">
<exec program="${devenv.exe}" workingdir="${build.path}">
<arg value="${build.solution}" />
<arg value="/build" />
<arg value="${build.target}" />
<arg value="/out" if="${property::exists('build.log')}" />
<arg value="${build.log}" if="${property::exists('build.log')}" />
</exec>
</ifnot>
</target>
<target name="rebuild">
<if test="${property::exists('devenv.path')}">
<exec program="${devenv.exe}" workingdir="${build.path}" basedir="${devenv.path}">
<arg value="${build.solution}" />
<arg value="/rebuild" />
<arg value="${build.target}" />
<arg value="/out" if="${property::exists('build.log')}" />
<arg value="${build.log}" if="${property::exists('build.log')}" />
</exec>
</if>
<ifnot test="${property::exists('devenv.path')}">
<exec program="${devenv.exe}" workingdir="${build.path}">
<arg value="${build.solution}" />
<arg value="/rebuild" />
<arg value="${build.target}" />
<arg value="/out" if="${property::exists('build.log')}" />
<arg value="${build.log}" if="${property::exists('build.log')}" />
</exec>
</ifnot>
</target>
</project>