From: Rob M. <ro...@us...> - 2008-05-30 07:29:02
|
Update of /cvsroot/wix/wix/src/wix/Cab In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv15350/src/wix/Cab Modified Files: CabinetFileInfo.cs WixCreateCab.cs WixEnumerateCab.cs Log Message: BobArnso: SFBUG:1909096 - Add MSMQ and COM+ schemas to WiX.msi BobArnso: Fix sfbug:1912007 - Make en-us default culture in MSMQ and COM+ extensions, like all the others. JasonGin: Update votive icons. Still need to get higher resolution ones but these are an improvement. BobArnso: Add DirectXExtension. Currently contains properties to validate pixel and vertex shader model version capabilities. AaronSte: Adding more WiX development topics to the CHM - developing extensions and adding to wix.chm. Adding a CHM topic with resources for getting started learning how to use WiX. MGhazna: Updated the Votive code to make it localizable. BobArnso: Add WcaGetComponentToDo to wcautil.lib to return a single value indicating whether a component is being installed, uninstalled, or reinstalled (equivalent of calling MsiGetComponentStateW, WcaIsInstalling, WcaIsUninstalling, and WcaIsReInstalling). BobArnso: Add InternetShortcut element to WixUtilExtension and supporting custom action code in wixca.dll to create shortcuts to URLs. BobArnso: Fix sfbug:1913789 - Integrate mergemod.dll from SDK 6001.18000.367 JasonGin: wix.dll FxCop cleanup: Reliability, Security, Interoperability, Usage MiCarls: Use Convert.ToString() in ControlRow class when converting int to string JordanF: Fixing the WixTests build file to only build when VSTD 2005, VSTS 2005 or VSTT 2005 is installed MGhazna: Added missing .h file into the wix setup authoring and zip build file. JasonGin: XsdGen improvements: add GeneratedCode attribute and generate FXCop-clean code. MiCarls: Revamp build system to support multiple architectures. Build dutil, wcautil, and wixca in x86, x64 and ia64 architectures. BobArnso: Add WixCop topic to WiX.chm. MGhazna: Fixed some focus, cursor, selection and insert button issues in Build Event dialog box. MiCarls: Add several pdbs missing from pdb ZIP, and remove some outdated ones MGhazna: Updated to make WiX toolset localizable. MiCarls: Fix crash when decompiling pre-MSI 4.0 (Vista) Shortcut tables JasonGin: Refactoring to remove duplicated code in Decompiler.cs MiCarls: Don't decompile ErrorDialog property when suppress UI option is specified HeathS: Support specific warnings as errors Clean-up and make consistent tool usage Centralize all error checking into the message handling facility BobArnso: - Add Package/@InstallScope, combining Package/@InstallPrivileges and ALLUSERS - Document ~= preprocessor operator MilenL: Remove irrelevant menu commands Match build behavior of old setup projects Remove extra file templates JasonGin: Fix Votive project-load exception with extension reference and folder. AaronSte: Minor documentation changes for WixUI and SQL extension. MilenL: Fix a problem in the property pages initialization which would set the project type to nothing JasonGin: Fix many code analysis issues in wix.dll BobArnso: Update pre-req checking to cover the needed version of NAnt and to provide a better message when the .NET 3.5 SDK isn't installed. MiCarls: Fix crash when harvesting empty MULTI_SZ registry values MiCarls: Move Dutil\Inc to Dutil\, to match the public enlistment mridders: Added property support for localized names of well-known Windows SIDs. JasonGin: Update Votive projects to VS2008 and cleanup issues reported by newer FxCop. PMarcu: Changing wix.sln, toolsrc.sln, and ext.sln to use VS2008. JasonGin: Clean up file link warnings in .csproj files. BobArnso: Given the move to Visual Studio 2008 projects, adjust SafeImports registry values to trust wix.targets in Visual Studio 2008 instead of Visual Studio 2005. MiCarls: When harvesting self-registering assemblies, preserve URI status of registry values WixBuild: Version 3.0.4014.0 JasonGin: Change Votive project templates to use fixed source file names. (Avoids problems with spaces in provided project name.) BobArnso: - Fix bug with InternetShortcuts so that shortcuts in otherwise empty directories are created when necessary. Have the immediate CA create unique temporary CreateFolder rows to do so. - Update InternetShortcuts extension to create RemoveFile rows to remove the shortcuts rather than write an otherwise unnecessary deferred CA. - Let WcaAddTempRecord pass back a MSIDBERROR error code by validating with MSIMODIFY_VALIDATE_NEW. (Otherwise errors from MsiViewModify are just a generic ERROR_FUNCTION_FAILED.) - Add WixFailWhenDeferred to ease testing rollback CAs. BobArnso: - Update Setup project to use File/@Source-style authoring and move DirectoryRef/@FileSource into the .wixproj using BaseInputPaths property. - Prevent the compiler from prepending a \ to file source paths when none is specified in authoring (versus the .wixproj using BaseInputPaths property). JasonGin: Add project item linking support to VS SDK 2008 for Votive. MiCarls: Warn user when creating a patch that modifies a non-keypath file without modifying the keypath file PMarcu: Renaming BinderExtension to BinderFileManager to make way for true binder extensions. JasonGin: Minor fixes for building on 64bit OS. JasonGin: Fix "View in Object Browser" function for Votive project references. JasonGin: Project item linking: fix delete behavior and remove assertions. JasonGin: Fix incremental build problem related to MsgGen resources. MGhazna: Changes to fix Fallback UI culture issue. SFBUG: 1942991 - Invalid culture causes Light to crash CAraman: Fix compilation errors at /WX /W4, an x64 compilation error, and several issues found during static code analysis. Allow an existing definition of the countof macro. JasonGin: Add linker warning for output type not matching output filename extension. RavneetS: Make HeatCore constructor public to expose Heat object model for other uses. AaronSte: Adding WXL files for several localized versions of WixUI. Pmarcu: Admin image resectioning should put customaction sequencing in the same section as the customaction definition. PMarcu: Renaming BinderExtension to BinderFileManager to make way for true binder extensions. JasonGin: Load mergemod.dll directly instead of via Win32 manifest, enabling in-proc calls to the linker without using COM registration. BobArnso: * Fix sfbug:1947028 and prevent NullReferenceException on CheckBox table with -sui * Suppress more UI-related tables with -sui * Implement sffeature:1947549: Add -sct switch to dark to suppress decompilation of custom tables PMarcu: Making calls to the BinderExtension at various places in the binding process. JRock: - Fixing the build so that Visual Studio and command-line MSBuild builds work as expected. The ROOT environment variable was not defined. - Adding StyleCop to the ROOT\external directory so that StyleCop is again turned on for the projects that use it. MilenL: Property pages validation related fixes. Properly update the properties based on the current configuration. Implement Save As... for zero impact projects. BobArnso: * Add WixGamingExtension. For details, see http://www.joyofsetup.com/2008/04/22/new-wix-feature-gaming-extension/. JasonGin: Fix Votive project extension reference path bugs. MiCarls: Ensure all tools report a warning for unknown commandline arguments BobArnso: Use 2.0 MSBuild tasks instead of 3.5 BobArnso: * Support running NAnt from external directory. * Run PREfast if codeanalysis property includes the substring prefast (to make room for future code analysis options). * Work around PREfast-unclean strsafe.h header by wrapping it in wixstrsafe.h that disables the warnings. WixBuild: Version 3.0.4025.0 HeathS: Fix argument processing so that all supported arguments are handled PMarcu: SFBUG:1921457 Better documentation of $ escaping in the preprocessor. MGhazna: Updated the Wix to block on VS version of Wix. Also modified the code to define ProductName at a common place in the code. JasonGin: Fix two bugs in wix.targets: * CoreClean misses some files when multiple configurations are involved * "_TimeStampAfterCompile does not exist" error running post-build step after failed build JasonGin: Minor Votive bugfixes: * Remove Set as Startup Project menu item. * Fix exception getting URL automation property of file nodes. JasonGin: Votive new project creation fixes: * Don't add WixToolPath property (it is set by wix.targets). * Don't convert spaces to underscores in OutputName property. JasonGin: Prevent duplicate extension references from being added to WiX projects. JasonGin: Update names of Votive project templates to be more consistent. JasonGin: Fix Votive bug displaying FullPath in project reference properties. JasonGin: Store Votive project reference paths as config-independent properties in user project file instead of config-dependent. JasonGin: Enable/disable controls in project property pages when selected output type changes. MGhazna: Fixed a bug in votive: accelerator keys for Paths property page panel are not set appropriately... MGhazna: Updated Wix Setup to fix a bug in uninstall. Here is the scenario it fixed: - Install VS 2008 (and / or VS 2005). - Install Wix (it will install Votive along with it). - Uninstall VS you installed in step 1. - Uninstall Wix - Expected: Wix should get uninstalled completely. - Actual: Wix remains there because of Votive Features. HeathS: SFBUG 1908965: Warn about adding components to existing features MiCarls: Clean up toolset usage strings to be more complete and clear MiCarls: SFBUG:1951034 CreateCab should use the current directory by default SameerG: SFBUG 1839779: Change sys variable to uppercase MiCarls: When decompiling TARGETDIR, make sure its name is correct (compilable) MiCarls: Update tools to use fileversion instead of assemblyversion. RobMen: Fix incorrect use of CompareStringW(). RobMen: SFBUG:1904861 - allow $(var.XXX) in the Component/@Guid. BobArnso: * Add -fdvital switch to Candle and FileDefaultVital to Candle MSBuild task to specify that files should have the msidbFileAttributesVital attribute set (the equivalent of File/@Vital="yes"). HeathS: SFBUG:1905383 - votive_project_references.htm should use italics MiCarls: Remove unused and unnecessary "-zs" switch from candle MiCarls: Improve dark's "can't open database" error message RobMen: Fix AssemblyVersion of WiX to "3.0.0.0" to provide extensions a stable build number to fixate on. MiCarls: DeleteServices action should be scheduled with the ServiceControl element, NOT ServiceInstall element RobMen: SFBUG:1603124 - mark ClickThrough as x86. MiCarls: Fix a NullReference exception when decompiling the DrLocator table WixBuild: Version 3.0.4102.0 MiCarls: Wix.chm should contain the fileversion, not the assemblyversion HeathS: Allow for changes to the number of columnns for a table definition. JasonGin: Fix rename and copy/cut/paste behavior for linked project items in Votive. MiCarls: All tools now print invalid commandline argument warnings after logo JasonGin: Evaluate MSBuild properties in HintPath of project reference nodes MilenL: Fixes a couple of validation related bugs MiCarls: Rename platforms: "intel"->"x86", "intel64"->"ia64" Rename $(sys.PLATFORM) to $(sys.BUILDARCH), and make it resolve to values acceptable to Package/@Platform JasonGin: Improve x64 build support across WiX and Votive, including: * wix.targets and WixTasks support for building from an x64 environment * X86/X64 platform configuration support in WiX projects in Visual Studio * Updated Setup.wixproj to build new WiX3_x64.msi to install MSBuild tasks and targets to 64bit Program Files, using above project support HeathS: Improved support for incremental builds by resolving WixExtension MGhazna: Bug fix in Show All Files implementation to prevent Hidden files from displaying. MiCarls: Fix nullreference exception when decompiling orphaned files MiCarls: Add -o[ut] switch to dark, and default output file, consistent with the other tools MiCarls: Ensure dark gives an appropriate "file not found" error MiCarls: Clarify error message when no DiskId is specified on Merge element HeathS: SFBUG:1786354 - standard table definitions need to be updated for MSI 4.5 RobMen: SFBUG:1855576 - don't crash Binder when SymbolPath element is added. WixBuild: Version 3.0.4109.0 BobArnso: * Files include the msidbFileAttributesVital attribute by default. Note that this change mean that packages built with this version of WiX might contain many changes that would be reflected in patches built against previous versions of WiX. In general, you should avoid toolset changes when building patches; in this case, use the switches below to revert to the previous behavior and avoid the unnecessary changes in patch transforms. * Add SuppressFilesVitalByDefault to Candle MSBuild task. * Add -sfdvital switch to candle.exe. * Remove FilesVitalByDefault/-fdvital. JasonGin: SFBUG:1963160 - wix.targets ProjectDefineConstants: don't use <PropertyGroupinside a <Target> MiCarls: Update decompiler warning to no longer say "WiX doesn't support MSPs" AaronSte: Adding detection properties related to the Windows SDK 6.x. MGhazna: Made Copyright notice for wix toolset consistent. CAraman: Fix some integer overflow/underflow and globalization issues found during static code analysis. RobMen: SFBUG:1670269 - use PUT-GUID-HERE for all examples. Added support for PUT-GUID-###-HERE for more detailed examples. BobArnso: Fix sfbug:1949149 to include the "unflattened" schema files, which still have the embedded doc comments, so IntelliSense doc tooltips work as expected. JasonGin: Add the Deployment Tools Foundation (DTF) project to WiX. * Extensive .NET class libraries for MSI and compression. * Managed custom action support. * Not yet integrated into WiX tools (needs an extension). * See DTF.chm for more info. BobArnso: * Add WixFirewallExtension to register and remove port and application exceptions in the Windows Firewall (requires Windows XP SP2 or later). * When referenced, schedule WixFailWhenDeferred by default before InstallFinalize with a condition of WIXFAILWHENDEFERRED=1. A big test might want more control over scheduling, but this is appropriate 90+% of the time. * Fix WcaGetComponentToDo to properly return WCA_TODO_REINSTALL WixBuild: Version 3.0.4116.0 JasonGin: Don't disable WiX projects in sln config when new projects are added. JasonGin: SFBUG:1969122 - Fix bug reading Record Stream from a custom action. MiCarls: Switches like light -cc should error instead of crash if given a file MiCarls: SFBUG:1950801 Several text elements in WixUI should have NoPrefix set AaronSte: SFBUG:1903337 - Fix schema definition for RadioButton Text field. Update WixUI cancel dialog to not appear at the top of the screen. JasonGin: Fix DTF integration issues: add missing MakeSfxCA.exe and .resources. JasonGin: Add VS project templates for C++, C#, & VB custom actions. JasonGin: Add CustomActionData class to DTF. RobMen: SFBUG:1904406 - escape PerfCounter names correctly. SFBUG:1958604 - default to "english" strings. BobArnso: Fix sfbug:1965131 & sfbug:1954901 - Revert to prior version of mergemod.dll that's known to work with VC_User_CRT71_RTL_X86_---.msm. WixBuild: Version 3.0.4123.0 BobArnso: * Update zip.build to pick up DTF files. * Add DTF details to "Building WiX" help topic. PMarcu: Candle and the preprocessor need to handle duplicates better. JasonGin: Votive project properties infrastructure improvements: * Common property-editing code between DTE and property page UI for improved consistency and maintainability. * Pseudo-data-binding model for property page controls makes it very easy to add or modify exposed properties in the future. * New control event-handling code fixes several bugs related to how and when property changes are saved to the project file. * Failed validation in the UI reverts a field to its previous value. * Property pages UI and DTE properties have common entry-point for validation. * Fixed bugs in file path & ICEs validators. PMarcu: SFBUG:1888452 - Fixing Class Registration to remove created names on uninstall. BobArnso: Fix sfbug:1835876 by having Shortcut pick up a child Icon's id BobArnso: Fix sfbug:1969136 by sending node text through the XmlWriter as text, not as CDATA. RobMen: SFBUG:1744683 - generate short file names and ids for CopyFile element the same as File element. Index: CabinetFileInfo.cs =================================================================== RCS file: /cvsroot/wix/wix/src/wix/Cab/CabinetFileInfo.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CabinetFileInfo.cs 6 Dec 2006 10:18:53 -0000 1.2 --- CabinetFileInfo.cs 30 May 2008 07:27:29 -0000 1.3 *************** *** 27,31 **** { private string fileId; - private int fileSize; private ushort date; private ushort time; --- 27,30 ---- *************** *** 35,45 **** /// </summary> /// <param name="fileId">File Id</param> - /// <param name="fileSize">Uncompressed file size</param> /// <param name="date">Last modified date (MS-DOS time)</param> /// <param name="time">Last modified time (MS-DOS time)</param> ! public CabinetFileInfo(string fileId, int fileSize, ushort date, ushort time) { this.fileId = fileId; - this.fileSize = fileSize; this.date = date; this.time = time; --- 34,42 ---- /// </summary> /// <param name="fileId">File Id</param> /// <param name="date">Last modified date (MS-DOS time)</param> /// <param name="time">Last modified time (MS-DOS time)</param> ! public CabinetFileInfo(string fileId, ushort date, ushort time) { this.fileId = fileId; this.date = date; this.time = time; *************** *** 56,68 **** /// <summary> - /// Gets the uncompressed size of the file. - /// </summary> - /// <value>uncompressed size of the file.</value> - public int FileSize - { - get { return this.fileSize; } - } - - /// <summary> /// Gets modified date (DOS format). /// </summary> --- 53,56 ---- Index: WixEnumerateCab.cs =================================================================== RCS file: /cvsroot/wix/wix/src/wix/Cab/WixEnumerateCab.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** WixEnumerateCab.cs 27 Jun 2007 05:39:09 -0000 1.3 --- WixEnumerateCab.cs 30 May 2008 07:27:30 -0000 1.4 *************** *** 32,35 **** --- 32,36 ---- private bool disposed; private ArrayList fileInfoList; + private CabInterop.PFNNOTIFY pfnNotify; /// <summary> *************** *** 39,42 **** --- 40,44 ---- { this.fileInfoList = new ArrayList(); + this.pfnNotify = new CabInterop.PFNNOTIFY(this.Notify); CabInterop.EnumerateCabBegin(); } *************** *** 60,69 **** // the callback (this.Notify) will populate the list for each file in cabinet ! CabInterop.PFNNOTIFY pfnNotify = new CabInterop.PFNNOTIFY(this.Notify); ! CabInterop.EnumerateCab(cabinetFile, pfnNotify); ! ! // To keep the locals from going out of scope during the external enumeration ! GC.KeepAlive(cabinetFile); ! GC.KeepAlive(pfnNotify); return this.fileInfoList; --- 62,66 ---- // the callback (this.Notify) will populate the list for each file in cabinet ! CabInterop.EnumerateCab(cabinetFile, this.pfnNotify); return this.fileInfoList; *************** *** 94,98 **** if (fdint == CabInterop.NOTIFICATIONTYPE.COPY_FILE) { ! CabinetFileInfo fileInfo = new CabinetFileInfo(pfdin.Psz1, pfdin.Cb, pfdin.Date, pfdin.Time); this.fileInfoList.Add(fileInfo); } --- 91,95 ---- if (fdint == CabInterop.NOTIFICATIONTYPE.COPY_FILE) { ! CabinetFileInfo fileInfo = new CabinetFileInfo(pfdin.Psz1, pfdin.Date, pfdin.Time); this.fileInfoList.Add(fileInfo); } Index: WixCreateCab.cs =================================================================== RCS file: /cvsroot/wix/wix/src/wix/Cab/WixCreateCab.cs,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** WixCreateCab.cs 12 Jul 2006 09:00:30 -0000 1.7 --- WixCreateCab.cs 30 May 2008 07:27:30 -0000 1.8 *************** *** 63,66 **** --- 63,71 ---- public WixCreateCab(string cabName, string cabDir, int maxSize, int maxThresh, CompressionLevel compressionLevel) { + if (String.IsNullOrEmpty(cabDir)) + { + cabDir = Directory.GetCurrentDirectory(); + } + CabInterop.CreateCabBegin(cabName, cabDir, (uint)maxSize, (uint)maxThresh, (uint)compressionLevel, out this.handle); } *************** *** 87,95 **** catch (DirectoryNotFoundException) { ! throw new FileNotFoundException("The system cannot find the file specified.", file); } catch (FileNotFoundException) { ! throw new FileNotFoundException("The system cannot find the file specified.", file); } } --- 92,100 ---- catch (DirectoryNotFoundException) { ! throw new WixFileNotFoundException(file); } catch (FileNotFoundException) { ! throw new WixFileNotFoundException(file); } } |