在MSBuild中使用通用引导程序时,如何确定先决条件的安装顺序?
例如,给定:
<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>
安装A,B,C和D的顺序是什么?我如何控制该订单?
答案 0 :(得分:6)
看起来我可以在产品清单中使用DependsOnProduct
标记指定:
<Product ProductCode="A">
<PackageFiles>...</PackageFiles>
<RelatedProducts>
<DependsOnProduct Code="B" />
</RelatedProducts>
...
</Product>
这会导致在B
之前安装A
。
答案 1 :(得分:1)
您似乎已经回答了自己的问题。正如您在答案中所提到的那样,产品的订单由pacakges自己决定。您的msi始终安装在最后。
包装可以在(对于VS2008)中找到:
C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bootstrapper \ Packages
Eeach包中包含自己的bootstrapper清单文件,其中设置了先决条件。对于Microsoft提供的软件包,您不必担心这一点。你真的应该只关心你是否为你的先决条件创建了自己的包。