Bootstrapper Pré-requisito ordenação
-
19-08-2019 - |
Pergunta
Ao usar o bootstrapper genérico com MSBuild como é a ordem de instalação dos itens pré-requisito determinado?
Por exemplo, 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>
O que é a ordem em que A, B, C e D são instalados? Como faço para controlar essa ordem?
Solução
Parece que posso especificar no manifesto produto com a tag DependsOnProduct
:
<Product ProductCode="A">
<PackageFiles>...</PackageFiles>
<RelatedProducts>
<DependsOnProduct Code="B" />
</RelatedProducts>
...
</Product>
Isso deve resultar em B
ser instalado antes A
.
Outras dicas
Você parece já respondeu a sua própria pergunta. Como você aludir a em sua resposta, a ordem dos produtos em determinada pelos próprios pacakges. Seu MSI é sempre o último instalado.
Os pacotes podem ser encontrados em (para VS2008):
C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bootstrapper \ Packages
pacote Eeach contém o seu próprio arquivo de manifesto bootstrapper onde os pré-requisitos estão definidos. Você não deveria ter que se preocupar com isso para os pacotes fornecidos da Microsoft. Você realmente só deve se preocupar se você está criando seus próprios pacotes para os seus pré-requisitos.