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