Bootstrapper先决条件订购

时间:2009-01-23 00:19:20

标签: .net installation bootstrapper

在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的顺序是什么?我如何控制该订单?

2 个答案:

答案 0 :(得分:6)

看起来我可以在产品清单中使用DependsOnProduct标记指定:

<Product ProductCode="A">
  <PackageFiles>...</PackageFiles>
  <RelatedProducts>
    <DependsOnProduct Code="B" />
  </RelatedProducts>
  ...
</Product>

这会导致在B之前安装A

http://msdn.microsoft.com/en-us/library/ms229456.aspx

答案 1 :(得分:1)

您似乎已经回答了自己的问题。正如您在答案中所提到的那样,产品的订单由pacakges自己决定。您的msi始终安装在最后。

包装可以在(对于VS2008)中找到:
C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bootstrapper \ Packages

Eeach包中包含自己的bootstrapper清单文件,其中设置了先决条件。对于Microsoft提供的软件包,您不必担心这一点。你真的应该只关心你是否为你的先决条件创建了自己的包。