Conceptually the following is a good way to view the Binder (it is somewhat 
simplified, so the usual caveats apply): in the WiX toolset the "native" file 
formats are all based on XML (with a small smattering of ZIP) but the final 
output files are mostly not that format. So the Binder is the component the 
Linker uses to write the non-WiX-native files (like MSI, MST, EXE (in the case 
of Burn), etc.). It's called the binder because it takes not just the output of 
the Linker but also all the files referenced by the linker and "binds" them 
into the final output file(s). What is happening here is that the Binder emits 
a file indicating all of those referenced files (since if any of them changed 
you need a re-link (or at minimum a rebind) to incorporate those changed files 
into the output file. To enable correct incremental linking MSBuild needs to 
have a list of the files that were incorporated by the binder into the output 
file. However, some of those files may not exist after the linker is done (if 
that portion of the temp folder was cleaned, for instance) and if MSBuild can't 
find them it assumes that a rebuild is needed. So resetting timestamps will do 
nothing for this issue. Devs: would moving @(_BindBuiltOutputs) from Outputs to 
Inputs fix this issue? Or would it introduce some other subtle error?
-Blair From: r...@merlinia.com
To: wix-devs@lists.sourceforge.net
Date: Thu, 14 Mar 2013 18:05:05 +0000
Subject: Re: [WiX-devs] Project with merge modules defeating    incremental     
build facility









Yes, well, I'm sure you're right. I don't even know what the "Binder" is.
 
All I know is that when I started researching this, what I could see in the 
MSBuild logs that marked the turning point of whether MSBuild ran the
 Link task or not was a message where it said "All output files are up to date" 
in the cases where it didn't run Link. And as far as I know MSBuild does not 
keep track of whether there have been changes in the collection of files from 
one build to the next,
 it just blindly compares timestamps on the current input files vs. the current 
output files.
 
Yours,
Rennie
 

From: Rob Mensching [mailto:r...@robmensching.com]


Sent: 14. marts 2013 18.32

To: Windows Installer XML toolset developer mailing list

Subject: Re: [WiX-devs] Project with merge modules defeating incremental build 
facility

 

It's not a timestamp issue. The file paths change everytime so there are always 
a set of files that were removed and a set of files that were added. Even if 
the timestamps were correct (they may be) the add/remove makes it look like a 
lot
 of changes. So, the Binder would need to taught to recoginize the files from 
Merge Modules much as I described above.


 

On Thu, Mar 14, 2013 at 9:53 AM, Rennie Petersen <r...@merlinia.com> wrote:


I'm not sure I understand - I had assumed that the BindContentsFileList was a 
list created
 by WiX as part of the build. 
 
Anyway, it is correct that the three temporary files get different names on 
every build.
 I've attached some of them for your viewing pleasure.
 
I'm still thinking that the way to fix this is to set the timestamps on those 
temporary files to
 equal the timestamp on the merge module file, but what do I know?
 
Yours,
Rennie
 
 

From: Rob
 Mensching [mailto:r...@robmensching.com]


Sent: 14. marts 2013 15.55

To: Windows Installer XML toolset developer mailing list

Subject: Re: [WiX-devs] Project with merge modules defeating incremental build 
facility



 


My bet is that the mergemod.dll is extracting the contained files to a random 
temp location. Thus every time the Merge Module is merged, the 
BindContentsFileList gets a different
 set of file names and thinks things are out of date. If you could confirm 
that, that'd be awesome.


 


If my guess is correct, the fix is to probably to add the paths to the merge 
modules to the BindContentsFileList *instead of* the files in the merge modules.



 

On Wed, Mar 13, 2013 at 12:11 PM, Rennie Petersen <r...@merlinia.com> wrote:



> This conversation is better for wix-devs,
 

OK.

 
> short answer: no WiX does not create those files. The mergemod.dll from the 
> MSI SDK creates those files


Hmm, but WiX must get the filenames of the three files since they end up on the 
projectName.BindContentsFileListextension.txt  list of files.
 
So again, what you should do with those three temporary files is to set their 
timestamp to the timestamp of the merge module file.
That should solve the problem.
 
Yours,
Rennie




------------------------------------------------------------------------------

Everyone hates slow websites. So do we.

Make your web apps faster with AppDynamics

Download AppDynamics Lite for free today:

http://p.sf.net/sfu/appdyn_d2d_mar

_______________________________________________

WiX-devs mailing list

WiX-devs@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/wix-devs

 







------------------------------------------------------------------------------

Everyone hates slow websites. So do we.

Make your web apps faster with AppDynamics

Download AppDynamics Lite for free today:

http://p.sf.net/sfu/appdyn_d2d_mar

_______________________________________________

WiX-devs mailing list

WiX-devs@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/wix-devs

 





------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
WiX-devs mailing list
WiX-devs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-devs                           
          
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
WiX-devs mailing list
WiX-devs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-devs

Reply via email to