Bootstrapper Commande préalable
-
19-08-2019 - |
Question
Lors de l'utilisation du programme d'amorçage générique avec MSBuild, comment l'ordre d'installation des éléments prérequis est-il déterminé?
Par exemple, étant donné:
<Project ToolsVersion="3.5" xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
<ItemGroup>
<BootstrapperFile Include='A' />
<BootstrapperFile Include='B' />
<BootstrapperFile Include='C' />
<BootstrapperFile Include='D' />
</ItemGroup>
<Target Name='MySetup'>
<GenerateBootstrapper
Path='C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper'
ApplicationName='My Program'
ApplicationFile='MyProgram.msi'
BootstrapperItems='@(BootstrapperFile)'
Culture='en'
CopyComponents='true'
ComponentsLocation='HomeSite'
OutputPath='.\' />
</Target>
</Project>
Quel est l'ordre dans lequel A, B, C et D sont installés? Comment contrôler cet ordre?
La solution
Il semble que je puisse spécifier dans le manifeste du produit avec la balise DependsOnProduct
:
<Product ProductCode="A">
<PackageFiles>...</PackageFiles>
<RelatedProducts>
<DependsOnProduct Code="B" />
</RelatedProducts>
...
</Product>
Ceci devrait résulter en l'installation de B
avant A
.
Autres conseils
Vous semblez avoir déjà répondu à votre propre question. Comme vous le dites dans votre réponse, l'ordre des produits est déterminé par les emballages eux-mêmes. Votre msi est toujours installé en dernier.
Les packages peuvent être trouvés dans (pour VS2008):
C: \ Program Files \ SDK Microsoft \ Windows \ v6.0A \ Bootstrapper \ Packages
Le package Eeach contient son propre fichier manifeste d'amorçage dans lequel les conditions préalables sont définies. Vous ne devriez pas avoir à vous soucier de cela pour les paquets fournis par Microsoft. Vous ne devriez vraiment vous soucier que de créer vos propres packages pour vos pré-requis.