2009-01-23 72 views
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得到安装顺序?我如何控制该订单?

回答

6

它看起来像我可以在产品清单与DependsOnProduct标签注明:

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

这将导致BA前正在安装。

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

+0

你最近的陈述倒退了。产品A取决于B,所以B先安装。如果你修复它,你会得到+1。 – 2009-06-29 15:47:15

1

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

该软件包可以在(用于VS2008)中找到:
C:\ Program Files文件\微软的SDK \的Windows \ v6.0A \引导程序\软件包

Eeach包中包含它自己的引导程序清单文件,其中的先决条件被设置。您不必担心微软提供的软件包。你真的应该只关心你是否为你的先决条件创建了自己的软件包。