PDA

View Full Version : MSI Diff Tool Problem in IS2009/SP1



MichaelHlavinka
06-25-2008, 04:19 PM
Is there a way to display the differences between two databases using something other than the tooltips in the MSI Diff tool? The tooltips display only for a few seconds which is not nearly enough time to display and digest complicated differences.

MichaelU
06-26-2008, 10:22 AM
Not at this point, no. As an ugly workaround, you can go to the _TransformView table during the difference, and locate the record which describes the change. (See MSDN for further docs on reading _TransformView; thankfully this is one of the human readable cases.)

Long term (think future update or release), what sort of behavior would be most useful to you?

Somehow bring up a dialog with both versions
Bring up a panel showing both versions at the bottom, ideally with the actual differences highlighted (like WinMerge)
Option to output the differences in some text (or xml) format
Show the original value in some sort of status bar
Something else, or some combination of the above

MichaelHlavinka
06-26-2008, 10:31 AM
The tooltip approach is fine but you'll probably have to write your own control or use your own window as the OS tooltips cannot be made to show for an infinite amount of time. However, you must remember:

1) The width can get quite wide so the display must be designed to handle this in an easy to comprehend manner.

2) You may need to put extra space between the differences so the display is clearer.

Alternatively, you could design something like used in MS Access to display SQL related records. It's like a tree control that you click the "+ in the cell to open display records below.

There may be others who have more ideas.

RobertDickau
06-26-2008, 10:51 AM
(For what it's worth, there's also the prehistoric method of using the MSI SDK script WiDiffDb.vbs, which will create a text description of changes between two MSI databases.)

Christopher Painter
06-26-2008, 01:57 PM
msi2xml can also be used to export two packages to XSD documents and then diff the documents. I suppose WiX's dark could be used for similar purposes although I trust msi2xml much more for this purpose.

DLee65
06-26-2008, 04:24 PM
Not at this point, no. As an ugly workaround, you can go to the _TransformView table during the difference, and locate the record which describes the change. (See MSDN for further docs on reading _TransformView; thankfully this is one of the human readable cases.)

Long term (think future update or release), what sort of behavior would be most useful to you?

Somehow bring up a dialog with both versions
Bring up a panel showing both versions at the bottom, ideally with the actual differences highlighted (like WinMerge)
Option to output the differences in some text (or xml) format
Show the original value in some sort of status bar
Something else, or some combination of the above


I have been playing with this tool today and some things that would be good.
1. Show the differences in two lines in the bottom of the display - much like BeyondCompare and probably WinMerge.
2. Give the option to export differences to a html file or xml file for parsing.
3. Command line options for generating reports of differences on build machines.
4. The tool tip method is good as long as you use a customized tool tip so that it does not fade away so fast.

Of course Christopher's suggestion and Robert's suggestion is something I did not know about either, so I must explore these options.

Other suggestions:
Be able to sort a column based on changes in that particular column. For instance in the file table I have a set of 5 files where the file sizes have changed. I have an additional 10 files where the files sizes are the same but the version number has changed. I wanted to sort the file size column so that all the file sizes that have changed show at the time and in ascending or descending order. Right now it can only sort by file size and not by if there is a change or not.