Authoring to Windows Installer 4.0 Features mentioned at PDC 2005
As Tyler recently mentioned, you can find the Professional Developers Conference 2005 session and presentation of the Windows Installer 4.0. Here's a preliminary view of how to author to these features. Note: This documentation is preliminary and is subject to change.
Restart Manager Support
As Tyler presented in the slide titled "Windows Installer 4.0: Fewer Reboots", Restart Manager support in MSI just requires MsiRMFilesInUse be present in the package when installing on Windows Vista. This dialog looks a lot like the FilesInUse dialog with a couple of radio buttons added under the list box to represent the new Restart Manager Option along with the fallback option to the old behavior.
Dialog_ Control Type X Y Width Height Attributes Property Text Control_Next Help MsiRMFilesInUse DlgLine Line 0 234 294 0 1 MsiRMFilesInUse Banner Bitmap 0 0 374 44 1 NewBinary1 MsiRMFilesInUse DlgDesc Text 21 23 292 25 65539 Some files that need to be updated are currently in use. MsiRMFilesInUse DlgTitle Text 13 6 292 25 65539 {&MSSansBold8}Files in Use MsiRMFilesInUse DlgText Text 21 49 348 17 3 The following applications are using files that need to be updated by this setup. MsiRMFilesInUse BannerLine Line 0 44 374 0 1 MsiRMFilesInUse RadioButtonGroup1 RadioButtonGroup 19 187 343 40 16777219 ShutdownOption List MsiRMFilesInUse List ListBox 21 66 331 118 7 FileInUseProcess OK MsiRMFilesInUse OK PushButton 228 244 66 17 3 OK Cancel MsiRMFilesInUse Cancel PushButton 299 244 66 17 3 Cancel RadioButtonGroup1
Dialog_ Control_ Event Argument Condition Ordering MsiRMFilesInUse OK EndDialog Return 1 1 MsiRMFilesInUse OK RMShutdownAndRestart 0 ShutdownOption="ShutdownOption1" 2 MsiRMFilesInUse Cancel EndDialog Exit 1 1
Dialog HCentering VCentering Width Height Attributes Title Control_First Control_Default Control_Cancel MsiRMFilesInUse 50 50 374 266 19 [ProductName] OK OK Cancel
Property Value ShutdownOption ShutdownOption1
Property Order Value x Y Width Height Text Help ShutdownOption 1 1 6 9 331 14 Automatically close all applications and attempt to restart them after setup is complete. ShutdownOption 2 2 6 21 322 17 Do not close applications. (A reboot will be required.)
Elevation Privleges Not Required
As Tyler presented in the slide titled "What's new in MSI: UAP Elevation and Installs and Patches", you can set the msidbSumInfoSourceTypeLUAPackage bit in the Summary Information Stream of a MSI and prevent the Windows Installer from invoking the UAP elevation prompt. To do this, one just needs to set the 4th position (0x08) in the Word Count property. You can do this with the Windows Installer SDK tool msiinfo.exe. As an example, here's the command and output before setting the bit
c:\>msiinfo product.msi ClassId = {000C1084-0000-0000-C000-000000000046} [ 1][/c] Codepage = 1252 [ 2][/t] Title = Installation Database [ 3][/j] Subject = Testing [ 4][/a] Author = Microsoft Corp. [ 5][/k] Keywords = Installer,MSI,Database [ 6][/o] Comments = Contact: Your local administrator [ 7][/p] Template(MSI CPU,LangIDs) = Intel;1033 [ 9][/v] Revision = {62B8B42B-9D2E-49C2-A791-C90F212940B8} [12][/r] Created = 2005/10/25 23:00:48 [13][/q] LastSaved = 2005/10/25 23:00:48 [14][/g] Pages(MSI Version Used) = 200 [15][/w] Words(MSI Source Type) = 0 <snip>
Then one runs msiinfo with the /W switch to set the Word Count property like so
c:\msiinfo product.msi /W 8
Then rerun the view to confirm the setting took like so
c:\>msiinfo product.msi ClassId = {000C1084-0000-0000-C000-000000000046} [ 1][/c] Codepage = 1252 [ 2][/t] Title = Installation Database [ 3][/j] Subject = Testing [ 4][/a] Author = Microsoft Corp. [ 5][/k] Keywords = Installer,MSI,Database [ 6][/o] Comments = Contact: Your local administrator [ 7][/p] Template(MSI CPU,LangIDs) = Intel;1033 [ 9][/v] Revision = {62B8B42B-9D2E-49C2-A791-C90F212940B8} [12][/r] Created = 2005/10/25 23:00:48 [13][/q] LastSaved = 2005/10/25 23:00:48 [14][/g] Pages(MSI Version Used) = 200 [15][/w] Words(MSI Source Type) = 8 <snip>
Windows Vista Multilingual User Interface (MUI) Shortcut Support
As Tyler presented in the slide titled "What's new in MSI: More...", you can now add Windows Vista Multilingual User Interface (MUI) Shortcut support to your MSI. The way you do this is to add for new columns to the Shortcut Table of your MSI. These are rows DisplayResourceDLL, DisplayResourceId, DescriptionResourceDLL, DescriptionResourceId placed as follows:
Column | Type | Key | Nullable |
---|---|---|---|
Shortcut | Identifier | Y | N |
Directory_ | Identifier | N | |
Name | Filename | N | |
Component_ | Identifier | N | |
Target | Shortcut | N | |
Arguments | Formatted | Y | |
Description | Text | Y | |
Hotkey | Integer | Y | |
Icon_ | Identifier | Y | |
IconIndex | Integer | Y | |
ShowCmd | Integer | Y | |
WkDir | Identifier | Y | |
DisplayResourceDLL | Formatted | Y | |
DisplayResourceId | Integer | Y | |
DescriptionResourceDLL | Formatted | Y | |
DescriptionResourceId | Integer | Y |
Both the DisplayResourceDLL and DescriptionResourceDLL values represent fully qualified paths to files on disk that the MUI system will load (per the Windows Vista protocol) to get the localized strings. Both the DisplayResourceDId and DescriptionResourceId represent the resource index of the string of interest. This integer is non-negative and will be negated before the call to the Shell API to reguster the MUI shortcuts.
[Author: Robert Flaming]
This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at https://www.microsoft.com/info/cpyright.htm.
Comments
Anonymous
September 03, 2006
RestartManagerの詳細 Part.1Anonymous
October 25, 2006
PingBack from http://4sysops.com/archives/msi-packager-list-tools-to-create-windows-installer-packages/Anonymous
July 18, 2007
Test Case 25: Verify the application properly handles files in use during install (Req:2.12) Question:Anonymous
July 18, 2007
Test Case 25: Verify the application properly handles files in use during install (Req:2.12) QuestionAnonymous
June 19, 2009
PingBack from http://mydebtconsolidator.info/story.php?id=18610