4

将通用引导程序与 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 的安装顺序是什么?我如何控制该订单?

4

2 回答 2

6

看起来我可以在带有DependsOnProduct标签的产品清单中指定:

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

这应该会导致B之前被安装A

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

于 2009-01-23T00:33:19.800 回答
1

你似乎已经回答了你自己的问题。正如您在回答中提到的那样,产品的顺序由包装本身决定。您的 msi 始终是最后安装的。

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

每个包都包含它自己的引导程序清单文件,其中设置了先决条件。对于 microsoft 提供的软件包,您不必担心这一点。你真的应该只关心你是否为你的先决条件创建自己的包。

于 2009-01-23T00:51:28.233 回答