aboutsummaryrefslogtreecommitdiff
path: root/src/tools/Dtf/Documents/Guide/Content/history.htm
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/Dtf/Documents/Guide/Content/history.htm')
-rw-r--r--src/tools/Dtf/Documents/Guide/Content/history.htm437
1 files changed, 437 insertions, 0 deletions
diff --git a/src/tools/Dtf/Documents/Guide/Content/history.htm b/src/tools/Dtf/Documents/Guide/Content/history.htm
new file mode 100644
index 00000000..704ce875
--- /dev/null
+++ b/src/tools/Dtf/Documents/Guide/Content/history.htm
@@ -0,0 +1,437 @@
1<html xmlns="http://www.w3.org/1999/xhtml">
2<head>
3 <title>Change History</title>
4 <link rel="stylesheet" type="text/css" href="../styles/presentation.css" />
5 <link rel="stylesheet" type="text/css" href="ms-help://Hx/HxRuntime/HxLink.css" />
6</head>
7
8<body>
9
10 <div id="control">
11 <span class="productTitle">Deployment Tools Foundation</span><br />
12 <span class="topicTitle">Change History</span><br />
13 <div id="toolbar">
14 <span id="chickenFeet">
15 <a href="about.htm">Overview</a> &gt;
16 <span class="nolink">Change History</span>
17 </span>
18 </div>
19 </div>
20 <div id="main">
21 <div id="header">
22 </div>
23 <div class="summary">
24
25<h3><b>2007-07-03</b></h3>
26<i>See <a href="whatsnew.htm">What's New?</a></i><br />&nbsp;<br />&nbsp;<br />
27<hr size="2"/>
28<h3><b>2005-03-30</b></h3>
29
30<ul>
31<li>New custom action proxy<ul>
32 <li><b>Managed custom actions use an XML config file to specify the CLR version.</b></li>
33 <li>New CAPack module is an unmanaged self-extracting CA DLL that can wrap both
34 managed and unmanaged custom actions. (The old managed CAProxy module is obsolete.)</li>
35 <li>Custom action build process is different but still complicated --
36 see documentation for details.</li>
37 <li>CustomActionAttribute no longer accepts the optional NativeDependencies
38 parameter since it does not apply to the new proxy (all packaged files
39 are always extracted and available when the CA executes). </li>
40</ul></li>
41
42<li>64bit support<ul>
43 <li>Various code fixes to pointer/handle types and structure alignments.</li>
44 <li>Cabinet and MSI libraries tested on AMD64 CLR.</li>
45 <li>Unmanaged and managed parts of custom action proxy tested on AMD64.</li>
46</ul></li>
47
48<li>MSI 3.1 APIs added:<ul>
49 <li>Installer.SetExternalUI(ExternalUIRecordHandler)</li>
50 <li>Installer.NotifySidChange</li>
51</ul></li>
52
53<li>Code builds easier with .NET Famework 2.0<ul>
54 <li>AugmentIL post-build step is no longer necessary when compiling the cabinet code
55 against .NET Framework 2.0, which has builtin support for cdecl delegates.</li>
56 <li>All C# code compiles against .NET Framework 2.0 without obsolete warnings,
57 when setting the NETFX2 preprocessor define.</li>
58 <li>Same code is still compatible with .NET Framework 1.0 + AugmentIL.</li>
59</ul></li>
60
61<li>Miscellaneous bugfixes/changes:<ul>
62 <li>InstallPackage.ExtractFiles could fail in some cominations of
63 compressed/uncompressed files - fixed.</li>
64 <li>Installer.DeterminePatchSequence was broken due to an incorrect interop struct - fixed.</li>
65 <li>CabinetInfo and CabinetFileInfo classes made serializable.</li>
66 <li>Added Session.FormatString method to simplify formatting a string with
67 property substitutions.</li>
68</ul></li>
69<li>Documentation updates:<ul>
70 <li>Updated all documentation for new CA proxy.</li>
71 <li>Added new topic discussing InstallUtil.</li>
72</ul></li>
73</ul>
74
75<hr size="2"/>
76<h3><b>2004-04-13</b></h3>
77
78<ul>
79<li>Documentation<ul>
80 <li>Consolidated all documentation into a single CHM file.</li>
81 <li>Added new topics about working with MSI databases & cabinet files,
82 to help new users get oriented more easily.</li>
83</ul></li>
84
85<li>WindowsInstaller<ul>
86 <li>Removed [Beta] tags from MSI 3.0 APIs, but otherwise there
87 have been no changes since 3.0 Beta 1.<ul>
88 <li>Be warned these are still the least-tested parts of
89 the library, so early users may encounter bugs.</li>
90 </ul></li>
91</ul></li>
92
93<li>InstallPackage<ul>
94 <li>Fixed InstallPackage.ExtractFiles() bug when directory doesn't exist.</li>
95 <li>Added ability to handle uncompressed files in a package marked as compressed.</li>
96</ul></li>
97
98<li>Cabinet<ul>
99 <li>Fixed improper handling of file attributes.<ul>
100 <li>This bug caused some packages to not be extractable by other tools.</li>
101 </ul></li>
102 <li>Added support for UTF filenames.<ul>
103 <li>Non-ASCII filenames will automatically be stored as UTF-8.
104 (But note most other tools don't know how to extract them.)</li>
105 </ul></li>
106</ul></li>
107</ul>
108
109<hr size="2"/>
110<h3><b>2003-10-13</b></h3>
111
112<ul>
113<li>Cab<ul>
114 <li>Fixed a bug introduced in v2.4.0 that caused files to be left in the %TEMP%
115 directory after creating a cab.</li>
116 <li>Unsealed the CabinetInfo, CabinetFileInfo, CabinetStatus classes and made a few methods
117 protected and virtual.</li>
118</ul></li>
119
120<li>AugmentIL<ul>
121 <li>Fixed a bug that sometimes caused a crash when specifying a relative output path
122 on the command-line.</li>
123 <li>Fixed a bug that sometimes caused the Win32 version to be missing from the output file.</li>
124</ul></li>
125
126<li>Samples\Diff: added new sample tool<ul>
127 <li>Recursively diffs directories, MSIs, MSPs, CABs, other files.</li>
128</ul></li>
129</ul>
130
131<hr size="2"/>
132<h3><b>2003-09-23</b></h3>
133
134<ul>
135<li>Cab<ul>
136 <li>Fixed a bug that caused compressing very large files/file sets to use way too
137 much memory. Performance on large inputs is now within a few % of native cab tools
138 (sometimes even a little faster!) for the same compression level.</li>
139</ul></li>
140
141<li>WindowsInstaller<ul>
142 <li>All the new MSI 3.0 beta APIs are wrapped, resulting in the following additions:<ul>
143 <li>New classes - Product, Patch (for accessing sourcelist and other config)</li>
144 <li>New methods on Install class - GetProducts, GetPatches, RemovePatches,
145 ApplyMultiplePatches, DetermineApplicablePatches, ExtractPatchXmlData</li>
146 <li>New enumerations - InstallContext, PatchStates, SourceType</li>
147 <li>Additional InstallProperty values</li>
148 </ul></li>
149 <li>Note, MSI 3.0 support should be considered preliminary for now,
150 as APIs (both native and managed) are subject to change.</li>
151 <li>For MSI 2.0 compatibility, developers should not use any classes or
152 methods that are marked as [MSI 3.0 beta] in the documentation.</li>
153 <li>And unrelated to 3.0, a few additional enums have been added:
154 DialogAttributes, ControlAttributes, CustomActionTypes,
155 IniFileAction, RegistryRoot, RemoveFileInstallMode,
156 ServiceControlEvents, ServiceInstallFlags, TextStyles,
157 UpgradeAttributes, LocatorType</li>
158 <li>Also made a few minor non-breaking changes to keep the library FxCop-clean.</li>
159</ul></li>
160
161<li>AugmentIL<ul>
162 <li>Added support for strongname signing and delay-signing. AugmentIL tries to
163 locate the keyfile using the AssemblyKeyFileAttribute, or you may specify the
164 path with the new /key option.</li>
165 <li>All &quot;released&quot; assemblies will now be strongname-signed
166 (with an unofficial key).</li>
167</ul></li>
168
169<li>CAProxy<ul>
170 <li>Added support for NativeDependencies property on CustomActionAttribute. This enables
171 custom actions to P/Invoke into native DLLs that are carried with them.</li>
172</ul></li>
173
174<li>Samples\SampleCAs<ul>
175 <li>In SampleCA2, changed MessageBox.Show(&quot;&quot;) to session.Message(User,&quot;&quot;),
176 because generally it is a bad practice for CAs to show independent UI.</li>
177 <li>Added test of CustomActionAttribute.NativeDependencies functionality.</li>
178</ul></li>
179
180<li>Samples\CabPack: added new sample<ul>
181 <li>Demonstrates &amp; tests the cab library by creating self-extracting packages</li>
182</ul></li>
183
184<li>Samples\Inventory: added new sample<ul>
185 <li>Shows a hierarchical, relational, searchable view of all of the product,
186 feature, component, file, and patch data managed by MSI, for all products
187 installed on the system.</li>
188</ul></li>
189</ul>
190
191<hr size="2"/>
192<h3><b>2003-09-12</b></h3>
193
194<ul>
195<li>Cab:<ul>
196 <li>Added CabinetInfo.CompressDirectory method, capable of compressing an
197 entire directory tree structure.</li>
198 <li>Updated documentation of various methods concerning support of directory
199 structure inside cabs.</li>
200 <li>CabinetInfo case-sensitivity was inconsistent -
201 now it is case-insensitive by default, though case is still preserved</li>
202 <li>Separated assembly attributes into assembly.cs</li>
203</ul></li>
204<li>Msi:<ul>
205 <li>InstallerException and subclasses automatically get extended error data
206 from MSI's last-error-record when available. The data is stored
207 in the exception and made available through the GetErrorRecord()
208 method, and the exception's Message includes the formatted error
209 message and data. This makes most exceptions extremely informative!</li>
210 <li>Added View.GetValidationErrors() method, and supporting ValidationErrorInfo
211 struct and ValidationError enum. This wrapper for the MsiViewGetError
212 API had been accidentally left out.</li>
213 <li>Session.Message() now supports message-box flags to specify buttons &amp; icon</li>
214 <li>Added doc remarks to various methods about closing handles.</li>
215 <li>Separated assembly attributes into assembly.cs</li>
216</ul></li>
217<li>AugmentIL:<ul>
218 <li>Recent builds of ildasm v2.0.* have a slightly different output format,
219 which could break AugmentIL in some cases - fixed</li>
220</ul></li>
221<li>SampleCAs:<ul>
222 <li>Removed 'using' clause from SampleCA1 -- there's no need to close the session's active database handle</li>
223</ul></li>
224<li>Documentation:<ul>
225 <li>Added note to ReadMe about compiling the cab source into another assembly</li>
226</ul></li>
227</ul>
228
229<hr size="2"/>
230<h3><b>2003-08-07</b></h3>
231
232<ul>
233<li>Cab:<ul>
234 <li>CabinetInfo.IsValid() usually returned false even for valid cabs - fixed</li>
235 <li>Extracting cab files with null timestamps generated exception - fixed</li>
236</ul></li>
237<li>Msi:<ul>
238 <li>Added InstallCanceledException, subclass of InstallerException;
239 Methods which may be canceled by the user can throw this exception</li>
240 <li>Added MessageResult enumeration;
241 Used by Session.Message() and ExternalUIHandler delegate</li>
242 <li>Installer.EnableLog() now supports extended attributes correctly:
243 Append mode and flush-every-line</li>
244 <li>Added Session.DoActionSequence() -
245 This wrapper for the MsiSequence API had been accidentally left out</li>
246</ul></li>
247<li>CAProxy:<ul>
248 <li>Catches InstallCanceledException, returns ERROR_INSTALL_USEREXIT
249 so CA developer doesn't necessarily have to handle the exception</li>
250</ul></li>
251<li>Msi\Package:<ul>
252 <li>Added TransformInfo class: metadata about an individual patch transform</li>
253 <li>Added PatchPackage.GetTransform*() methods which return TransformInfo</li>
254</ul></li>
255<li>Documentation:<ul>
256 <li>Added section to ReadMe.htm about building managed custom actions</li>
257</ul></li>
258</ul>
259
260<hr size="2"/>
261<h3><b>2003-06-02</b></h3>
262
263<ul>
264<li>Msi:<ul>
265 <li>Validation didn't work on merge modules - fixed</li>
266</ul></li>
267<li>CAProxy:<ul>
268 <li>Was broken in 2.1 - fixed</li>
269</ul></li>
270</ul>
271
272<hr size="2"/>
273<h3><b>2003-05-14</b></h3>
274
275<ul>
276<li>Msi:<ul>
277 <li>External UI handler didn't survive a garbage collection - fixed</li>
278 <li>Validation engine was completely broken - now it should work
279 at least for MSIs which are already mostly valid</li>
280 <li>Added DynamicLoad property to CustomActionAttribute<br />
281 Usage: set DynamicLoad=false when using XmlSerialization; default is true</li>
282</ul></li>
283<li>Msi\Package:<ul>
284 <li>File extraction and update methods didn't work on merge modules - fixed</li>
285 <li>Made file update code slightly more robust</li>
286 <li>Removed hard-reference to the FilePatch assembly - now it is only
287 loaded if working with binary file patches</li>
288</ul></li>
289<li>AugmentIL:<ul>
290 <li>AugmentIL would crash if some input files had read-only attr - fixed</li>
291 <li>Made /verbose switch slightly more verbose</li>
292</ul></li>
293<li>CAProxy:<ul>
294 <li>Added support for the DynamicLoad property of CustomActionAttribute</li>
295 <li>Added MMsiBreak debugging functionality - see doc</li>
296</ul></li>
297<li>Samples\WiFile:<ul>
298 <li>Added /l (list files) switch</li>
299</ul></li>
300<li>Samples\SampleCAs:<ul>
301 <li>In the makefile the comments about debug builds had an error;
302 Now the sample builds debug packages (correctly) by default.</li>
303</ul></li>
304<li>Documentation:<ul>
305 <li>Wrote AugmentIL.htm describing the AugmentIL tool and its options.</li>
306 <li>Wrote WiFile.htm describing the WiFile sample tool.</li>
307 <li>Added section to ReadMe.htm about debugging managed custom actions.</li>
308</ul></li>
309</ul>
310
311<hr size="2"/>
312<h3><b>2003-03-31</b></h3>
313
314<ul>
315<li>Msi: Implemented the remaining APIs, also minor improvements and bugfixes<ul>
316 <li>All published APIs are wrapped, with the exception of four:
317 MsiGetFileSignatureInformation (because I don't know of a .NET analog
318 for the returned certificate structure), and 3 APIs for previewing UI</li>
319 <li>Database.OpenView and Database.Execute* now take String.Format style params</li>
320 <li>Database.ApplyTransform can optionally use the error-suppression flags
321 stored in the transform summary info</li>
322 <li>Added a few supporting enumerations and structures for the remaining APIs</li>
323 <li>InstallerException gets a descriptive message for any MSI or system error</li>
324 <li>Fixed a bug in InstallerException which would usually report &quot;error 0&quot;</li>
325 <li>Added optimization for setting a Record field to a MemoryStream</li>
326 <li>Record.GetStream is capable of extracting substorages</li>
327 <li>Moved InstallPath class to Microsoft.WindowsInstaller.Package assembly</li>
328</ul></li>
329<li>Msi\FilePatch: added new project<ul>
330 <li>Binary file patch API wrapper</li>
331</ul></li>
332<li>Msi\Package: added new project<ul>
333 <li>Helper classes for working with MSI and MSP packages</li>
334</ul></li>
335<li>Cab: some minor bugfixes<ul>
336 <li>Cabinet.Extract(stream, name) threw a NullReferenceException if the file
337 didn't exist in the cab -- now it returns null</li>
338 <li>CabinetInfo.CompressFileSet() was broken -- fixed</li>
339 <li>If a Cabinet callback throws an exception, it is propogated as the
340 inner-exception of the CabinetException</li>
341</ul></li>
342<li>Samples\WiFile: added new sample<ul>
343 <li>Demonstrates some features of InstallPackage class in Msi\Package project</li>
344</ul></li>
345</ul>
346
347<hr size="2"/>
348<h3><b>2003-03-20</b></h3>
349
350Documentation!<ul>
351 <li>Msi and Cab sources include complete C# XML documentation.</li>
352 <li>Msi and Cab makefiles generate XML documentation files.</li>
353 <li>Reference CHM compiled from XML documentation with NDoc.</li>
354</ul>
355
356<p>I am aware that exceptions are still not documented in most areas.
357 Other than that, feel free to send me a note if it's still not clear
358 how to use parts of the API after reading the documentation.</p>
359
360<p>Version is still 1.1 because there are no code changes in this release.</p>
361
362<hr size="2"/>
363<h3><b>2003-03-13</b></h3>
364
365<ul>
366<li>Msi: lots of small improvements for usability and consistency<ul>
367 <li>Reworked ExternalUIHandler support</li>
368 <li>Added Installer properties/methods:<ul>
369 <li>Components</li>
370 <li>ComponentClients()</li>
371 <li>ComponentState()</li>
372 <li>ComponentPath()</li>
373 <li>EnableLog()</li>
374 </ul></li>
375 <li>Added Session.EvaluateCondition() method</li>
376 <li>Improved exception-handling in many methods in Installer, Database,
377 &amp; Session classes</li>
378 <li>Added extensive XML doc-comments to Installer, Database, View,
379 &amp; Session classes</li>
380 <li>A few breaking changes:<ul>
381 <li>View.ModifyMode enumeration moved outside View and
382 renamed ViewModifyMode</li>
383 <li>InstallLogMode enumeration renamed to InstallLogModes
384 (naming convention for bitfields)</li>
385 <li>Record constructor takes arbitrary number of parameters</li>
386 </ul></li>
387</ul></li>
388<li>AugmentIL: almost completely rewritten<ul>
389 <li>Ildasm/ilasm steps are built-in<ul>
390 <li>The round-trip can be done in one step</li>
391 <li>IL source input/output is still supported</li>
392 </ul></li>
393 <li>Never throws an unhandled exception</li>
394 <li>Organized command-line options, consistent with other .NET tools</li>
395 <li>Uses a plugin architecture to allow additional augmentations</li>
396</ul></li>
397<li>CAProxy: Added AIL_CAProxy.cs - AugmentIL plugin generates CA proxy methods</li>
398
399<li>SampleCAs: Updated makefile for new AugmentIL usage</li>
400</ul>
401
402<hr size="2"/>
403<h3><b>2003-01-16</b></h3>
404
405<ul>
406<li>ReadMe.htm: Added section on writing managed CAs</li>
407<li>SampleCAs: Added missing reference to System.Windows.Forms.dll to the makefile</li>
408<li>AugmentIL: Added specific warning messages for when CA method has wrong signature</li>
409<li>Put sources in Toolbox-hosted Source Depot.</li>
410</ul>
411
412<hr size="2"/>
413<h3><b>2003-01-14</b></h3>
414Initial posting to http://toolbox
415
416<p>&nbsp;</p>
417 </div>
418
419 <div id="footer">
420 <p />
421 Send comments on this topic to <a id="HT_MailLink" href="mailto:wix-users%40lists.sourceforge.net?Subject=Deployment Tools Foundation Documentation">
422 wix-users@lists.sourceforge.net</a>
423
424 <script type="text/javascript">
425 var HT_mailLink = document.getElementById("HT_MailLink");
426 var HT_mailLinkText = HT_mailLink.innerHTML;
427 HT_mailLink.href += ": " + document.title;
428 HT_mailLink.innerHTML = HT_mailLinkText;
429 </script>
430
431 <p />
432
433 </div>
434 </div>
435
436</body>
437</html>