【问题标题】:Bootstrapper Prerequisite ordering引导程序先决条件订购
【发布时间】:2009-01-23 00:19:20
【问题描述】:

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

【问题讨论】:

    标签: .net installation bootstrapper


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 你最后的陈述是倒退的。产品 A 依赖于 B,因此首先安装 B。如果你修复它,你会得到 +1。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多