Archiv für die Kategorie 'MSI4.5'

Windows Installer 4.5 versions

Friday, 6. June 2008 at 9:52 pm

As you all may already know the final release of the Windows Installer 4.5 Redistributable and SDK are now available.

The current version of Windows Installer is in the form; major.minor.build.update. We have received a few questions regarding the differences in the “build” and “update” fields of the version of Windows Installer 4.5 installed across different supported Windows Operating Systems . I will try to explain what these differences are and why they are expected.


The Windows Installer 4.5 redistributable can install on the following Windows Operating Systems:
















Target Operating System


Windows Installer 4.5 version


Windows Vista RTM


4.5.6000.20817


Windows Vista SP1, Windows Server 2008


4.5.6001.22162


Windows XP SP2, Windows XP SP3, Windows Server 2003 SP1, Windows Server 2003 SP2


4.5.6001.22159


Windows Vista RTM build number is 6000, while Windows Vista SP1 and Windows Server 2008 RTM are build number 6001. Hence, to comply with the different OS build numbers and applicability logic on Vista RTM and Vista SP1/Server 2008 operating systems, the Windows Installer binaries are built from the Vista RTM and Vista SP1 servicing branches respectively.


The “update” field is based on the OS revision number.  Since the redistributable packages to install Window Installer 4.5 on the different target operating systems are built from different Windows servicing branches, the revision number is different for each.


However, the different versions have no effect on the functionality provided by Windows Installer 4.5.


[Author: Zainab Hakim]
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 http://www.microsoft.com/info/cpyright.htm.

Original post by Windows Installer Team

Abgelegt von MSI4.5
von

Windows Installer 4.5 is now available!

Tuesday, 3. June 2008 at 6:58 pm


I am pleased to announce that the final release of the Windows Installer 4.5 Redistributable and SDK are now available. There is also a KB Article published about the release.


 


New and improved features in Windows Installer 4.5


The following new and improved features have been implemented in Windows Installer 4.5.


 


Multiple package transaction


In a multiple package transaction, you can create a single transaction from multiple packages. In a multiple package transaction, a chainer is used to dynamically include packages in the transaction. If one or more of the packages do not install as expected, you can roll back the installation.


 


Embedded UI handler


You can embed a custom user interface (UI) handler in the Windows Installer package. This makes a custom UI easier to integrate. You can also invoke an embedded UI handler from the Add or Remove Programs item in Control Panel. Or, you can invoke an embedded UI handler during a Windows Installer repair process.


 


Embedded chainer


You can use the embedded chainer to add packages to a multiple package transaction. You can use an embedded chainer to enable installation events across multiple packages. For example, you can enable install-on-demand events, repair events, and uninstall events across multiple packages.


 


Update supersedence resiliency


This feature lets you correct for changes in the FeatureComponent table during supersedence.


 


Shared component patching resiliency during uninstall


This feature makes sure that the most recent version of a component is available to all products.


 


Custom action execution on update uninstall


This feature lets an update add or change a custom action so that the custom action is called when an update is uninstalled.


 


If you have any questions about the 4.5 release, please see our MSDN Documentation or other topics posted on this blog about 4.5. Additionally, we will be monitoring and responding to the comments on this post.


 


Thanks to everyone who helped us throughout the beta program of this release!


 


[Author: Tyler Robinson]
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 http://www.microsoft.com/info/cpyright.htm.

Original post by Windows Installer Team

Abgelegt von MSI4.5
von

What changed in Windows Installer 4.5?

Thursday, 1. May 2008 at 11:10 pm

Apart from the feature work that we did in Windows Installer 4.5, we made a few changes to Windows Installer to address some user feedback or pain points. Here’s some of the important issues that were addressed:



  1. Added SeBackupPrivilige back to the Windows Installer service. This sould help any custom actions that needed this privilige like the ones that were reported on the Vista Compatability Team blog.

  2. Some case sensitive service name comparisions in InstallValidate used to result in an unnecessary files-in-use message on Vista. This is now fixed in Windows Installer 4.5.

  3. When a patch added new content in the form of a new component and that patch was being uninstalled, we used to remove that content, even if that content is shared by other products. This is now fixed in Windows Installer 4.5.

In addition to this, since Windows Installer 4.5 is the latest release of Windows Installer, it will have all the fixes and feature work that we did till Vista SP1.


[Author: Hemchander  Sannidhanam]
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 http://www.microsoft.com/info/cpyright.htm.

Original post by Windows Installer Team

Abgelegt von MSI4.5
von

Join us at TechEd 2008!

Friday, 25. April 2008 at 7:55 pm

Hello Everyone —


The schedules for Microsoft TechEd 2008 in sunny Orlando, Florida have recently been posted and I am pleased to announce that we will have FOUR Windows Installer-related sessions: two during the Developers Conference June 3-6 and two during the IT Professionals Conference June 10-13.


IT Professionals Conference Sessions:























Session Title


Track


Level


Type


Speaker


Software Packaging and Deployment with Windows Installer (MSI) 4.x


Join Windows Installer Lead Program Manager Tyler Robinson, as he discusses the latest release of Windows Installer: version 4.5. In this session, the servicing and packaging agility improvements in Windows Installer 4.5 are discussed, along with their impact on common corporate deployment scenarios. Additionally, tips and tricks for deploying all types of Windows Installer (MSI) packages are discussed, with plenty of time for Q & A at the end.


Windows Client


200


BRK


Tyler Robinson


Advanced Software Distribution Tricks with Windows Installer (MSI) 4.x


Windows Installer Test Engineer Ken Wong and Lead Program Manager Tyler Robinson discuss the tools that Windows Installer 4.x adds to a system administrator’s arsenal for distributing software inside their corporation. This deep dive compliment to the “Software Packaging and Deployment with Windows Installer (MSI) 4.5†session is designed to be interactive, so please come ready with questions to be answered during the session.


Windows Client


300


TLC


Ken Wong


 


Developers Conference Sessions:























Session Title


Track


Level


Type


Speaker


Demystifying Installation Requirements of the Certified for Windows Logo


With the Windows Vista and Windows Server 2008 “Certified for Windows” logo program, Windows is now requiring either ClickOnce or Windows Installer as the application packaging technology. While application installation is among the top application compatibility issues for users moving to the latest Windows platform, users see fewer issues when developers have packaged their applications with an application packaging technology native to the platform. In consultation with both application installation users and subject matter experts, the Certified for Windows logo has added the most requested items to the installation requirements and test cases. In this session, former Windows Application Deployment Team (home of Windows Installer and ClickOnce) program manager Robert Flaming discusses the justification for some of the “Certified for Windows” requirements and walks through some common issues that users have had to tackle as they prepare to get their “Certified for Windows” logo.


Windows and Frameworks


300


TLC


Robert Flaming


Designing within Windows Installer (MSI) Architecture: Embracing User Account Control, Multi-Package Transaction, and Other Windows Advances via Windows Installer


User Account Control has created new challenges for ISVs creating packages for Windows. Windows Installer 4.0 and 4.5 has extended its architecture to account for the new User Account Control experiences for the most seamless integration on Windows Vista (and above). This session discusses the Windows Installer architecture and how ISVs can build packages that appropriately take advantage the architecture. This session is designed to be interactive, so please come ready with questions to be answered.


Windows and Frameworks


300


TLC


Hemchander Sannidhanam


If you plan to attend TechEd, please attend our sessions and say HI to myself, Ken, Hem and Robert!


[Author: Tyler Robinson]
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 http://www.microsoft.com/info/cpyright.htm.

Original post by Windows Installer Team

Abgelegt von Conferences, MSI4.5
von

Windows Installer 4.5 Multi Package Transaction and UAC

Friday, 4. April 2008 at 3:49 am

What does this blog cover?


With Windows Installer 4.5 support for multi package transaction, the Windows Installer transaction boundary can span more than a single package. Additionally, UAC credential prompts are tied to a package trust boundary. This means, there can be more than one UAC credential prompt per transaction. If you want to use multi-package transactions and don’t want more than one credential prompt, then this blog is for you.


How do I author my packages to not get more than one UAC credential prompt per transaction?


Here’s what you got to do:


1.       Author MsiPackageCertificate table into the package that will be installed first in your multi-package transaction.


2.       Sign all the subsequent packages with one of the certificates listed in the MsiPackageCertificate table.


How does the MsiPackageCertificate table look like?


The MsiPackageCertificate table identifies the possible signer certificates used to digitally sign packages that are part of this product install and do not need separate UAC credential prompt to acquire admin approval. Using this table, setup authors can list the digital certificates that the packages that constitute this product will be signed with.


The table definition is listed below:



















Column


Type


Key


Nullable


PackageCertificate


Identifier


Y


N


DigitalCertificate_


Identifier


 


N


Columns


PackageCertificate
The unique identifier for this row in the MsiPackageCertificate Table.


DigitalCertificate_
An external key into the first column of the MsiDigitalCertificate Table. The row indicated in the MsiDigitalCertificate Table contains the binary representation of the signer certificate.


Could you please walk me through on how all of this fits together?


1.       User clicks on a setup.exe.


2.       Setup.exe calls MsiBeginTransaction.


3.       Setup.exe calls MsiInstallProduct to install First.msi that carries an MsiPackageCertificate table that lists the certificates that this package trusts.


4.       Windows Installer puts up a credential prompt for administrator’s consent to install First.msi.


5.       Upon admin consent, Windows Installer goes about installing the product.


6.       Setup.exe calls MsiInstallProduct to install second.msi that is signed by a certificate listed in First.msi package’s MsiPackageCertificate table. Since:


a.       Administrator trusted First.msi and


b.      Second.msi is signed by a certificate trusted by First.msi,


Windows Installer doesn’t put up any credential prompt for second.msi.


7.       Setup.exe finally calls MsiEndTransaction and commits the transaction.


FAQ


Q: Can a package that is not the first one to be installed as part of the transaction, add more trusted digital certificates for this transaction?


A: Yes. As long as the package was consented explicitly (via UAC prompt) or implicitly (trusted because it is signed by one of the trusted certificates)


Q: What will be the content of the Consent UI? Will it display the package information of the transaction information?


A: It will display just the package information. This is analogous to our behavior vis-à-vis MsiPatchCertificate table.


Q: What happens if a certificate listed in the MsiPackageCertificate table is revoked or expired?


A: Packages signed with revoked certificates will result in separate UAC prompts and cached credentials will not be used for those package installs. This is analogous to our behavior vis-à-vis MsiPatchCertificate table.


Q: Does the same behavior exist during uninstalls and re-cache reinstalls?


A: Yes. If a package carrying MsiPackageCertificate table is accepted as trusted by a UAC credential prompt then any subsequent packages (launched by embedded chainer or otherwise) signed by one of those certificates will also be considered as trusted.


Q: Can a patch add/delete certificates listed in the MsiPackageCertificate table?


A: Yes.


Q: Can a UAC compliant package add certificates?


A: No. UAC compliant packages are considered to be per-user packages; hence do not require admin credentials. So, they do not have the ability to add certificates.


Q: Can you uninstall multiple packages in a transaction with just one UAC prompt?


A: Yes. If you use the new MsiPackageCertificate table to chain trust across packages. However, there is a caveat to that. If the package has an embedded CAB then that will be stripped when it is cached on to the user’s machine. As a result, the certificate that was used to sign that package is no more valid. So, the certificates from MsiPackageCertificate table are not valid anymore and the chain of trust is broken. This causes us to put up credential prompt for all the packages that carried embedded CABs. We do understand this limitation.


[Author: Hemchander  Sannidhanam]
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 http://www.microsoft.com/info/cpyright.htm.

Original post by Windows Installer Team

Abgelegt von MSI4.5
von

Windows Installer 4.5 Transaction Enhancements: Multi Package Transaction

Friday, 4. April 2008 at 1:59 am

Why Multi Package Transaction?


Application vendors who compose their applications from multiple MSI packages should find this blog interesting. Currently Windows Installer does not provide a mechanism for installing multiple packages in a single transaction. This blog will talk about how Windows Installer has exposed the ability for multiple packages and patches to be part of a single transaction. Please go through the attached slide deck to get a high level overview of what problem space this new functionality addresses.


Overview of Windows Installer Transaction Terminology


Acquisition Phase


During this phase, Windows Installer analyzes the MSI package and the machine state and composes the list of operations that need to be performed to the system to install the package. Costing is an example of an activity that is run during this phase.


Execution Phase


During this phase, Windows Installer uses the list of operations created in the acquisition phase to change the system. As it is making those changes, it also creates a list of undo operations that it can use if the install fails. Copying the files, updating the registry keys and such are the activities performed in execution phase.


Commit Phase


This is the time when the transaction is committed to the system. For example, committing the assemblies to the GAC, or running the commit custom actions constitute this phase. Note that this is a point of no return. Any failures here are not guaranteed to be undone.


Rollback


Windows Installer supports transactional installs because it can rollback a transaction upon failure. That’s primarily because, it stores off undo operations for any changes that it makes to the system.


How can I use it?


In this section I will use several walkthroughs to bring forth how the new MsiBeginTransaction and MsiEndTransaction API work.


A simple walkthrough


1.       A setup author who wants to install multiple MSI packages as part of installing a single logical product, would request the Windows Installer service to start a transaction by calling the new MsiBeginTransaction API. By calling this API, the setup author requests Windows Installer to install subsequent packages as part of the transaction that was started by the call to MsiBeginTransaction.


2.       The setup.exe that started the transaction now calls MsiInstallProduct.


3.       Windows Installer runs the acquisition and execution phases to the MSI package that was requested to be installed. The net effect of this is:


a.       Costing actions like CostInitialize, FileCost, CostFinalize, InstallValidate are run on a per-package basis.


b.      When script execution actions like InstallExecute, InstallExecuteAgain, or InstallFinalize are run, the machine state is altered, files are copied/patched/upgraded, registry keys installed/modified and the product is published.


4.       Windows Installer defers the commit phase for the package until a later point of time. What this means is that if there are any assemblies or commit custom actions in this package, they will not be run now.


5.       The setup.exe can queue up more packages/patches to this transaction by calling API like MsiInstallProduct, MsiApplyMultiplePatches, etc.


6.       If the setup.exe is done with installing the product, it then calls MsiEndTransaction to commit and complete the transaction. At this point the commit phases of each of the packages is run in the order in which their install requests were made in steps 2 and 5 above.


This walkthrough summarizes the following aspects a multi-package transaction:


1.       Acquisition and execution phases are run on a per-package basis.


2.       Acquisition and execution happens right away. I.e., when a call to MsiInstallProduct returns successfully while running a multi-package transaction, you know that acquisition and execution phases were complete for that package.


3.       Commit level dependencies cannot exist between packages that are part of a multi-package transaction.


4.       Commit phases of all the packages that are part of a transaction are run in FIFO order. i.e., commit phase of the first package on which MsiInstallProduct was called will be run first before moving onto the commit phase of the second package.


A rollback walkthrough


1.       A setup.exe calls MsiBeginTransaction API.


2.       The setup.exe that started the transaction now calls MsiInstallProduct to install Required.msi. Let us assume this call succeeded.


3.       Setup.exe now calls MsiInstallProduct to install AnotherRequired.msi. Let us assume this call also succeeds.


4.       Now while doing some other work on its own, let us assume that the setup.exe determines that it should rollback the transaction. At this point, Setup.exe calls MsiEndTransaction to rollback and end the transaction.


5.       At this point, Windows Installer will run the rollback operations of both AnotherRequired.msi and Required.msi in that order.


This walkthrough summarizes that:


1.       Rollback can be deferred.


2.       Rollback operations are executed in LIFO order.


 Optional Package Failures


1.       A setup.exe calls MsiBeginTransaction API.


2.       The setup.exe that started the transaction now calls MsiInstallProduct to install Required.msi. Let us assume this call succeeded.


3.       The same setup.exe now calls MsiInstallProduct to install optional.msi.


4.       While installing optional.msi, let us assume Windows Installer encounters an error. This error could be either because, user canceled the install or because of some other reason altogether. In any case, Windows Installer rolls back the install of optional.msi.


5.       Based on the return code from MsiInstallProduct, Setup.exe learns that there was a failure while installing optional.msi. However, it chooses to continue the product install and disregard the failure due to the optional package.


6.       Setup.exe now calls MsiInstallProduct to install AnotherRequired.msi. Let us assume this call succeeds.


7.       When Setup.exe is done with installing the product, it calls MsiEndTransaction to commit the transaction. At this point, Windows Installer will run the commit phases of both Required.msi and AnotherRequired.msi.


This walkthrough summarizes that every package/patch install run during a multi-package transaction is optional. Failures in those API will not rollback the entire transaction.


Subsequent blogs will attempt to capture other areas of the multi-package transaction.


[Author: Hemchander  Sannidhanam]
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 http://www.microsoft.com/info/cpyright.htm.

Original post by Windows Installer Team

Abgelegt von MSI4.5
von

Windows Installer 4.5 Beta 2 Now Available!

Saturday, 22. March 2008 at 1:00 am

Hello everyone –


I am pleased to announce that Windows Installer 4.5 Beta 2 is now available from the Microsoft Connect site. If you have not signed up for the beta yet, please do - we are listed as “Windows Installer 4.5″ under the “Available Connections” section of the site. If you have already joined the beta, please head back to the Connect site and download the updated bits, tools and documentation.


This is our last planned beta release before we ship, so your feedback at this stage is especially important!


Thanks.


 - Tyler


PS: Due to some unfortunate timing, the Microsoft Connect team will be rolling out a new version of the Connect site on Saturday, March 22nd and the site will not be available from 10:00 AM and 2:00 PM (PDT). If you have issues accessing the beta program afterward, please leave a comment on this thread so we can follow-up on any issues.  


[Author: Tyler Robinson]
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 http://www.microsoft.com/info/cpyright.htm.

Original post by Windows Installer Team

Abgelegt von MSI4.5, Beta
von

Windows Installer 4.5 beta 2 - coming soon (and a chat too!)

Friday, 7. March 2008 at 11:47 pm

Hello everyone! First off, I wanted to let you know that I have re-joined the Windows Installer (MSI) team as a Lead PM, so you all will be hearing a lot more from me in the future <grin>


I have a few exciting announcements to make today:



  1. I know you all have been wondering what has been up with Windows Installer 4.5, and I am pleased to announce that we plan to release Beta 2 within the next few weeks. If you would like to access the beta program, please read Robert’s prior posting on this topic. There will be an announcement posted to the blog when the Beta 2 is available. Your feedback on beta 2 is welcomed and also critical in this stage of our release, as this is our last scheduled beta before we RTM.

  2. We have also scheduled an MSDN Technical Chat on Windows Installer 4.5 on April 3, 2008 at 10:00 AM (Pacific). If you have not participated in these chats before, they are a great forum for you to interact directly with members of the team! Click here to add the chat to your calendar so you don’t miss it!

Please stay tuned to the blog for more exciting announcements coming soon …


[Author: Tyler Robinson]
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 http://www.microsoft.com/info/cpyright.htm.

Original post by Windows Installer Team

Abgelegt von MSI4.5, Beta
von