Bootstrapper Requisito previo de pedido
-
19-08-2019 - |
Pregunta
Cuando se utiliza el programa de arranque genérico con MSBuild, ¿cómo se determina el orden de instalación de los elementos de requisitos previos?
Por ejemplo, dado:
<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>
¿Cuál es el orden en que se instalan A, B, C y D? ¿Cómo controlo ese pedido?
Solución
Parece que puedo especificar en el manifiesto del producto con la etiqueta DependsOnProduct
:
<Product ProductCode="A">
<PackageFiles>...</PackageFiles>
<RelatedProducts>
<DependsOnProduct Code="B" />
</RelatedProducts>
...
</Product>
Esto debería resultar en la instalación de B
antes de A
.
Otros consejos
Parece que ya has respondido tu propia pregunta. Como alude en su respuesta, el orden de los productos está determinado por los propios paquetes. Su msi siempre se instala al final.
Los paquetes se pueden encontrar en (para VS2008):
C: \ Archivos de programa \ Microsoft SDKs \ Windows \ v6.0A \ Bootstrapper \ Packages
Cada paquete contiene su propio archivo de manifiesto de arranque donde se establecen los requisitos previos. No debería tener que preocuparse por esto para los paquetes proporcionados por Microsoft. Realmente solo debería importarle si está creando sus propios paquetes para sus requisitos previos.