c#,MSBuild Bootstrapper with wix,如何下载.net framework 4.5

时间:2014-10-11 20:06:25

标签: c# .net msbuild wix

我的问题是,我不知道在.net framework 4.5的ItemGroup / BootstrapperFile中放入什么。 这是我的文件

<Project ToolsVersion="4.0"
   xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <BootstrapperFile Include="Microsoft.Windows.Installer.4.5" >
           <ProductName>Windows Installer 4.5</ProductName>
        </BootstrapperFile>
        <!--<BootstrapperFile Include="DotNetFX40" >
           <ProductName>Microsoft DotNet Framework 4.5 SP1</ProductName>
        </BootstrapperFile>-->
    </ItemGroup>

    <!-- from http://stackoverflow.com/questions/346175/use-32bit-program-files-directory-in-msbuild
    -->
    <PropertyGroup>
         <ProgramFiles32>$(MSBuildProgramFiles32)</ProgramFiles32> 
         <ProgramFiles32 Condition=" '' == '$(ProgramFiles32)'">$(ProgramFiles%28x86%29)</ProgramFiles32>
         <ProgramFiles32 Condition=" '' == '$(ProgramFiles32)'">$(ProgramFiles)</ProgramFiles32>
    </PropertyGroup>

    <Target Name="SetupExe">
        <GenerateBootstrapper
            ApplicationFile="C:\Projects\MySetup\MySetup\bin\Debug\MySetup.msi"
            ApplicationName="MyApplication"
            Culture="en"
            BootstrapperItems="@(BootstrapperFile)"
            ComponentsLocation="HomeSite"
            Path="$(ProgramFiles32)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\"
            OutputPath="output"/>
    </Target>

</Project>

我已经在互联网上读到,必须引用的是Windows SDKs文件夹中的目录C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A 但是,当引导程序应该下载依赖项时,给出本地文件夹的用途是什么? 有人知道在BootstrapperFile中使用的引用吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

BootstrapperFile元素标识@Path文件夹的Packages子文件夹中的包。其下的product.xml文件指定了所需的文件以及可以从中下载的文件(如果有的话)。它们必须在构建时存在的原因是setup.exe可以包含它们的校验和以在安装时进行验证。

下载取决于包作者(当然还有网站所有者)。如果您自己编写,您可能会发现Bootstrapper Manifest Generator很有用(如果您可以在Internet上找到它 - 所有官方链接都已死)。