If I understand correctly, then this should work well.  It sounds like
you may be modifying the source code to accomplish step 4 when you would
only need to use the built-in nant function file::exists().  

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Joe Kemp
Sent: Thursday, August 11, 2005 11:57 AM
To: nant-users@lists.sourceforge.net
Subject: RE: [Nant-users] Differential builds

I need to be able to produce these build to determine what files need to
be updated on the client.  I know typical installation apps (i.e.
Installshield) can create patches to send out updates to apps.  However,
we are using a remote deployment scenario over a wireless network.
Deployment is using a process kind of like the Microsoft Updater
Application Block.  Our solution is made up of a bunch of small
assemblies.

Here is what I have so far.
1.  Wrote a Visual Studio plugin to create a NAnt script based on the
open solution. It deals with dependencies, references, etc.
2.  Wrote a utility to extract the public members of an assembly and
write their specification to an xml document.
3.  Wrote a utility to compare two xml documents to determine if any
public members in the old assembly have changed in the new assembly.  If
so it creates a "changed file" as a flag.
4.  Modified the FileSet.FindMoreRecentLastWriteTime to not only look at
referenced assemblies date but also for the existence of the changed
file flag that might have been created in 3.  Signals a recompile is
necessary if date and changed and the flag file exists.

The NAnt script makes sure steps 2 and 3 are completed if any assembly
is recompiled.

So far so good.  Hopefully, I am not going down a path of disaster.

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Gary
Feldman
Sent: Thursday, August 11, 2005 1:30 PM
To: nant-users@lists.sourceforge.net
Subject: Re: [Nant-users] Differential builds

Joe Kemp wrote:

> I am developing a process to create true differential builds.  My 
> definition of a differential build is compiling only assemblies that 
> really need to be recompiled.  This requires looking at more than the 
> datetime of the dependencies of an assembly.  I need to know if any 
> public members have changed and then signal any referring assemblies 
> that they need to recompile.  I think ant has a task <depend> that 
> kind of accomplishes this.  Has anyone tried accomplishing this with 
> NAnt?  It seems that this concept is contradictory to most build 
> environments.  Reliance on datetimes and cleaning build environments 
> seem to be assumed the norm.
>
As near as I can tell from the Ant documentation, that's not what it's 
doing.  It's determining dependencies based on whether or not a class 
has changed, without looking for changes that don't affect public
members.

This seems like a difficult problem, requiring deep knowledge of the way

the .Net compilers use the information in referenced assemblies.  It's 
probably not as difficult as the problem for standard C/C++, but it's 
still hard.  If you're in a situation where there's so much coupling 
that recompilation times are an issue, that's probably an indication 
that you'd be better served by refactoring your codebase to reduce the 
coupling.

Gary





-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle
Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing &
QA
Security * Process Improvement & Measurement *
http://www.sqe.com/bsce5sf
_______________________________________________
Nant-users mailing list
Nant-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle
Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing &
QA
Security * Process Improvement & Measurement *
http://www.sqe.com/bsce5sf
_______________________________________________
Nant-users mailing list
Nant-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Nant-users mailing list
Nant-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to