You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Product element is the top-level XML element inside of a product file. The Product element is required in a product file.
ms.date
11/04/2016
ms.topic
reference
dev_langs
FSharp
VB
CSharp
C++
helpviewer_keywords
<product> element [bootstrapper]
author
mikejo5000
ms.author
mikejo
ms.subservice
deployment
<Product> element (bootstrapper)
The Product element is the top-level XML element inside of a product file.
Syntax
<Product
ProductCode
>
<RelatedProducts>
<IncludesProduct
Code
>
</RelatedProducts>
<InstallChecks>
<AssemblyCheck
Property
Name
PublicKeyToken
Version
Language
ProcessorArchitecture
/>
<RegistryCheck
Property
Key
Value
/>
<ExternalCheck
PackageFile
Property
Arguments
Log
/>
<FileCheck
Property
FileName
SearchPath
SpecialFolder
SearchDepth
/>
<MsiProductCheck
Property
Product
Feature
/>
<RegistryFileCheck
Property
Key
Value
File
SearchDepth
/>
</InstallChecks>
<Commands
Reboot
>
<Command
PackageFile
Arguments
EstimatedInstallSeconds
EstimatedDiskBytes
EstimatedTempBytes
Log
>
<InstallConditions>
<BypassIf
Property
Compare
Value
Schedule
/>
<FailIf
Property
Compare
Value
String
Schedule
/>
</InstallConditions>
<ExitCodes>
<ExitCode
Value
Result
String
/>
</ExitCodes>
</Command>
</Commands>
<PackageFiles
CopyAllComponents
>
<PackageFile
Name
Path
HomeSite
PublicKey
/>
</PackageFiles>
<Schedules>
<Schedule
Name
>
<BuildList />
<BeforePackage />
<AfterPackage />
</Schedule>
</Schedules>
</Package>
Elements and attributes
The Product element is required in a product file. It has the following attribute.
Attribute
Description
ProductCode
A unique identifier for the product.
Example
The following code example shows a complete product file for installing the .NET Framework.
<?xml version="1.0" encoding="utf-8" ?>
<Productxmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"ProductCode="Microsoft.Net.Framework.2.0"
>
<RelatedProducts>
<IncludesProductCode="Microsoft.Windows.Installer.2.0" />
</RelatedProducts>
<!-- Defines list of files to be copied on build -->
<PackageFiles>
<PackageFileName="instmsia.exe"HomeSite="InstMsiAExe"PublicKey="3082010A0282010100AA99BD39A81827F42B3D0B4C3F7C772EA7CBB5D18C0DC23A74D793B5E0A04B3F595ECE454F9A7929F149CC1A47EE55C2083E1220F855F2EE5FD3E0CA96BC30DEFE58C82732D08554E8F09110BBF32BBE19E5039B0B861DF3B0398CB8FD0B1D3C7326AC572BCA29A215908215E277A34052038B9DC270BA1FE934F6F335924E5583F8DA30B620DE5706B55A4206DE59CBF2DFA6BD154771192523D2CB6F9B1979DF6A5BF176057929FCC356CA8F440885558ACBC80F464B55CB8C96774A87E8A94106C7FF0DE968576372C36957B443CF323A30DC1BE9D543262A79FE95DB226724C92FD034E3E6FB514986B83CD0255FD6EC9E036187A96840C7F8E203E6CF050203010001"/>
<PackageFileName="WindowsInstaller-KB884016-v2-x86.exe"HomeSite="Msi30Exe"PublicKey="3082010A0282010100B22D8709B55CDF5599EB5262E7D3F4E34571A932BF94F20EE90DADFE9DC7046A584E9CA4D1D84441FB647E0F65EEC817DA4DDBD9D650B40C565B6C16884BBF03EE504883EC4F88939A51E394197FFAB397A5CE606D9FDD4C9338BDCD345971E686CEE98399A096B8EAE0445B1342B93A484E5472F70896E400C482017643AF61C2DBFAE5C5F00213DDF835B40F0D5236467443B1A2CA9CDD7E99F1351177FB1526018ECFE0B804782A15FD72C66076910CE74FB218181B6989B4F12F211B66EACA91C7460DB91758715856866523D10232AE64A06FDA5295FDFBDD8D34F5C10C35A347D7E91B6AFA0F45B4E8321D7019BDD1F9E5641FEB8737EA6FD40D838FFD0203010001"/>
<PackageFileName="dotnetfx.exe"HomeSite="DotNetFXExe"PublicKey="3082010A0282010100B22D8709B55CDF5599EB5262E7D3F4E34571A932BF94F20EE90DADFE9DC7046A584E9CA4D1D84441FB647E0F65EEC817DA4DDBD9D650B40C565B6C16884BBF03EE504883EC4F88939A51E394197FFAB397A5CE606D9FDD4C9338BDCD345971E686CEE98399A096B8EAE0445B1342B93A484E5472F70896E400C482017643AF61C2DBFAE5C5F00213DDF835B40F0D5236467443B1A2CA9CDD7E99F1351177FB1526018ECFE0B804782A15FD72C66076910CE74FB218181B6989B4F12F211B66EACA91C7460DB91758715856866523D10232AE64A06FDA5295FDFBDD8D34F5C10C35A347D7E91B6AFA0F45B4E8321D7019BDD1F9E5641FEB8737EA6FD40D838FFD0203010001"/>
<PackageFileName="dotnetchk.exe"/>
</PackageFiles>
<InstallChecks>
<ExternalCheckProperty="DotNetInstalled"PackageFile="dotnetchk.exe" />
<RegistryCheckProperty="IEVersion"Key="HKLM\Software\Microsoft\Internet Explorer"Value="Version" />
</InstallChecks>
<!-- Defines how to invoke the setup for the .NET Framework redist --><!-- TODO: Needs EstrimatedTempSpace, LogFile, and an update of EstimatedDiskSpace -->
<CommandsReboot="Defer">
<CommandPackageFile="instmsia.exe"Arguments= ' /q /c:"msiinst /delayrebootq"'EstimatedInstallSeconds="20" >
<InstallConditions>
<BypassIfProperty="VersionNT"Compare="ValueExists"/>
<BypassIfProperty="VersionMsi"Compare="VersionGreaterThanOrEqualTo"Value="2.0"/>
</InstallConditions>
<ExitCodes>
<ExitCodeValue="0"Result="SuccessReboot"/>
<ExitCodeValue="1641"Result="SuccessReboot"/>
<ExitCodeValue="3010"Result="SuccessReboot"/>
<DefaultExitCodeResult="Fail"FormatMessageFromSystem="true"String="GeneralFailure" />
</ExitCodes>
</Command>
<CommandPackageFile="WindowsInstaller-KB884016-v2-x86.exe"Arguments= '/quiet /norestart'EstimatedInstallSeconds="20" >
<InstallConditions>
<BypassIfProperty="Version9x"Compare="ValueExists"/>
<BypassIfProperty="VersionNT"Compare="VersionLessThan"Value="5.0.3"/>
<BypassIfProperty="VersionMsi"Compare="VersionGreaterThanOrEqualTo"Value="3.0"/>
<FailIfProperty="AdminUser"Compare="ValueEqualTo"Value="false"String="AdminRequired"/>
</InstallConditions>
<ExitCodes>
<ExitCodeValue="0"Result="Success"/>
<ExitCodeValue="1641"Result="SuccessReboot"/>
<ExitCodeValue="3010"Result="SuccessReboot"/>
<DefaultExitCodeResult="Fail"FormatMessageFromSystem="true"String="GeneralFailure" />
</ExitCodes>
</Command>
<CommandPackageFile="dotnetfx.exe"Arguments=' /q:a /c:"install /q /l"'EstimatedInstalledBytes="21000000"EstimatedInstallSeconds="300">
<!-- These checks determine whether the package is to be installed -->
<InstallConditions>
<!-- Either of these properties indicates the .NET Framework is already installed -->
<BypassIfProperty="DotNetInstalled"Compare="ValueNotEqualTo"Value="0"/>
<!-- Block install if user does not have admin privileges -->
<FailIfProperty="AdminUser"Compare="ValueEqualTo"Value="false"String="AdminRequired"/>
<!-- Block install on Windows 95 -->
<FailIfProperty="Version9X"Compare="VersionLessThan"Value="4.10"String="InvalidPlatformWin9x"/>
<!-- Block install on Windows 2000 SP 2 or less -->
<FailIfProperty="VersionNT"Compare="VersionLessThan"Value="5.0.3"String="InvalidPlatformWinNT"/>
<!-- Block install if Internet Explorer 5.01 or greater is not present -->
<FailIfProperty="IEVersion"Compare="ValueNotExists"String="InvalidPlatformIE" />
<FailIfProperty="IEVersion"Compare="VersionLessThan"Value="5.01"String="InvalidPlatformIE" />
<!-- Block install if the platform is not x86 -->
<FailIfProperty="ProcessorArchitecture"Compare="ValueNotEqualTo"Value="Intel"String="InvalidPlatformArchitecture" />
</InstallConditions>
<ExitCodes>
<ExitCodeValue="0"Result="Success"/>
<ExitCodeValue="3010"Result="SuccessReboot"/>
<ExitCodeValue="4097"Result="Fail"String="AdminRequired"/>
<ExitCodeValue="4098"Result="Fail"String="WindowsInstallerComponentFailure"/>
<ExitCodeValue="4099"Result="Fail"String="WindowsInstallerImproperInstall"/>
<ExitCodeValue="4101"Result="Fail"String="AnotherInstanceRunning"/>
<ExitCodeValue="4102"Result="Fail"String="OpenDatabaseFailure"/>
<ExitCodeValue="4113"Result="Fail"String="BetaNDPFailure"/>
<DefaultExitCodeResult="Fail"FormatMessageFromSystem="true"String="GeneralFailure" />
</ExitCodes>
</Command>
</Commands>
</Product>