Создание пакета Bootstrapper, когда все предварительные требования не находятся в одном корневом каталоге setup.exe

Я новичок в создании пакетов Bootstrapper. В настоящее время я создал пакет Bootstrapper, в котором все необходимые компоненты (VC++, IPP, Windows Installer 3.1, application.mxi) будут находиться в одной папке, а setup.exe будет находиться снаружи. Для этого я сохранил файл product.xml, в котором есть детали кода продукта для всех предварительных условий, и папку, в которой файл package.xml находится в корневом каталоге (Bootstrapper\Packages\Dependencies). На самом деле проблема, с которой я сталкиваюсь, заключается в том, что "отображаемое имя" является общим для всех предварительных условий. Я хочу отображаемое имя для списка всех пропущенных предпосылок при установке. Если я сохраню все предварительные требования в одном корневом каталоге файла setup.exe с отдельным product.xml и папкой en для каждого предварительного требования, то он отображает отображаемое имя правильно. Но мне нужна структура папок, как будто setup.exe должен быть вне предусловий. Есть ли возможность не хранить product.xml в корневом каталоге setup.exe?

<Project DefaultTargets="DoPostBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

  <PropertyGroup>
    <MSIName>Test</MSIName>
    <MSIFile>$(MSIName).msi</MSIFile>

    <DeploymentPath>D:\Test</DeploymentPath>
    <TargetPath>$(DeploymentPath)\$(MSIName)</TargetPath>


    <BootstrapperPath>D:\Bootstrapper</BootstrapperPath>
    <BootstrapperPackagesPath>$(BootstrapperPath)\Packages</BootstrapperPackagesPath>   

  </PropertyGroup>

  <Target Name="CreateTargetDirectory">
    <Exec Command="rmdir $(MSIName) /s /q" WorkingDirectory="$(DeploymentPath)" />
    <Exec Command="md $(MSIName)" WorkingDirectory="$(DeploymentPath)" />
  </Target>


  <Target Name="CopyMSI" DependsOnTargets="CreateTargetDirectory">
    <copy SourceFiles=".\Test\Release\Test.msi" DestinationFiles="$(TargetPath)\$(MSIFile)" />
  </Target>
  <Target Name="MakeLinks" DependsOnTargets="CreateTargetDirectory">
    <Exec Command="md $(TargetPath)\IPP6_0" />
    <Exec WorkingDirectory="$(TargetPath)\IPP6_0" Command="mklink /H ipp_runtime_6_0_x86.msi &quot;

$(BootstrapperPackagesPath)\IPP6_0\ipp_runtime_6_0_x86.msi&quot;" />

    <Exec Command="md $(TargetPath)\vcredist_x86_2005" />
    <Exec WorkingDirectory="$(TargetPath)\vcredist_x86_2005" Command="mklink /H vcredist_x86.exe &quot;

$(BootstrapperPackagesPath)\vcredist_x86_2005\vcredist_x86.exe&quot;" />
  </Target>

  <ItemGroup>

    <BootstrapperFile Include="IPP.Runtime.6.0.x86">
      <ProductName>IPP 6.0</ProductName>
    </BootstrapperFile>
    <BootstrapperFile Include="Microsoft.Visual.C++.8.0.x86">
      <ProductName>VC++ 2005 Runtime</ProductName>
    </BootstrapperFile>
  </ItemGroup>

  <Target Name="BuildBootstrapper" DependsOnTargets="CopyMSI;MakeLinks">
    <GenerateBootstrapper
      ApplicationFile="$(MSIFile)"
      ApplicationName="Test"
      BootstrapperItems="@(BootstrapperFile)"
      ComponentsLocation="Absolute"
      ComponentsUrl="($TargetPath)"
      CopyComponents="false"
      Culture="en"
      Path="$(BootstrapperPath)"
      OutputPath="$(DeploymentPath)"/>
  </Target>
  <Target Name="DoPostBuild" DependsOnTargets="BuildBootstrapper" />
</Project>

}

0 ответов

Другие вопросы по тегам