Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Installation 递归开启WiX引导器_Installation_Wix_Wix3.7 - Fatal编程技术网

Installation 递归开启WiX引导器

Installation 递归开启WiX引导器,installation,wix,wix3.7,Installation,Wix,Wix3.7,我正在使用WIX3.7的GenerateBotstrapper来生成我在VisualStudio部署项目中使用过的引导程序 MyBundle.wxs当前是一个包含单个项目的链,引用了我的文件 我的GenerateBootstapper中是否有什么东西导致了这种情况?我试图按照。中的示例进行操作。答案在标记中 ApplicationFile属性引用的是MSI文件$(TargetFileName),这是我最初使用的,必须膨胀到setup.exe,使其递归执行 <Target Name="

我正在使用WIX3.7的GenerateBotstrapper来生成我在VisualStudio部署项目中使用过的引导程序

My
Bundle.wxs
当前是一个包含单个项目的链,引用了我的文件


我的
GenerateBootstapper
中是否有什么东西导致了这种情况?我试图按照。

中的示例进行操作。答案在
标记中

ApplicationFile属性引用的是MSI文件<代码>$(TargetFileName),这是我最初使用的,必须膨胀到
setup.exe
,使其递归执行

   <Target Name="AfterBuild">
        <GenerateBootstrapper 
             ApplicationFile="MyInstaller.msi"
             ApplicationName="My Program"
             BootstrapperItems="@(BootstrapperFile)" 
             ComponentsLocation="Relative" 
             CopyComponents="True" 
             OutputPath="$(OutputPath)" 
             Path="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\" />   
    </Target>


但是,如何让引导程序通过此文件中的变量名将MSI文件作为目标?

GenerateBotstrapper任务是一个MSBuild任务,它创建的引导程序与WiX引导程序完全不同。虽然这里的主要问题不一定是您的,但从外观上看,您正在MSBuild中创建一个引导程序,以启动WiX引导程序,并启动安装程序。
...
    <ItemGroup>
        <ProjectReference Include="..\MyProgramInstaller\MyProgramInstaller.wixproj">
            <Name>MyProgramInstaller</Name>
            <Project>{my-guid}</Project>
            <Private>True</Private>
            <DoNotHarvest>True</DoNotHarvest>
            <RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
            <RefTargetDir>INSTALLFOLDER</RefTargetDir>
        </ProjectReference>
    </ItemGroup>

    <ItemGroup>
        <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1">
            <ProductName>.NET Framework 3.5 SP1</ProductName>
        </BootstrapperFile>
        <BootstrapperFile Include=".NETFramework,Version=v4.0">
            <ProductName>.NET Framework 4.0</ProductName>
        </BootstrapperFile>
        <BootstrapperFile Include="Microsoft.Windows.Installer.3.1">
            <ProductName>Windows Installer 3.1</ProductName>
        </BootstrapperFile>
        <BootstrapperFile Include="Microsoft.Windows.Installer.4.5">
            <ProductName>Windows Installer 4.5</ProductName>
        </BootstrapperFile>
        <BootstrapperFile Include="Microsoft.Sql.Server.Express.10.50.1600.1">
            <ProductName>Microsoft SQL Server 2008 R2</ProductName>
        </BootstrapperFile>
        <BootstrapperFile Include="Windows.Imaging.Component">
            <ProductName>Windows Imaging Component</ProductName>
        </BootstrapperFile>
        <BootstrapperFile Include="WindowsXP-KB921337-x86-ENUWinXPSP2">
            <ProductName>Win XP SP2 Hotfix</ProductName>
        </BootstrapperFile>
    </ItemGroup>

    <Import Project="$(WixTargetsPath)" />
    <!--
      To modify your build process, add your task inside one of the 
      targets below and uncomment it.
      Other similar extension points exist, see Wix.targets.

      <Target Name="BeforeBuild">
      </Target> -->

      <Target Name="AfterBuild">
          <GenerateBootstrapper ApplicationFile="$(TargetFileName)"
                        ApplicationName="My Program"
                        BootstrapperItems="@(BootstrapperFile)"
                        ComponentsLocation="Relative"
                        CopyComponents="True"
                        OutputPath="$(OutputPath)"
                        Path="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\" />
      </Target>
Result of running operator 'ValueEqualTo' on property 'SQLExpressChk' and value '-2': false
Result of running operator 'ValueEqualTo' on property 'SQLExpressChk' and value '-3': false
Result of running operator 'ValueEqualTo' on property 'SQLExpressChk' and value '-4': false
Result of running operator 'ValueLessThan' on property 'SQLExpressChk' and value '-4': false
Result of running operator 'ValueNotEqualTo' on property 'ProcessorArchitecture' and value 'amd64': false
Result of running operator 'ValueNotEqualTo' on property 'SQLExpressChk' and value '1': true
Result of checks for command 'SqlExpress2008_R2\SQLEXPR_x64_ENU.EXE' is 'Bypass'
Running checks for command 'SqlExpress2008_R2\SQLEXPR32_x86_ENU.EXE'
Result of running operator 'ValueNotEqualTo' on property 'ProcessorArchitecture' and value 'amd64': false
Result of running operator 'ValueNotEqualTo' on property 'SQLExpressChk' and value '2': true
Result of checks for command 'SqlExpress2008_R2\SQLEXPR32_x86_ENU.EXE' is 'Bypass'
'SQL Server 2008 R2 Express' RunCheck result: No Install Needed
Launching Application.
Running command 'C:\Path\To\MyBootstrapper\bin\Release\setup.exe' with arguments ''
   <Target Name="AfterBuild">
        <GenerateBootstrapper 
             ApplicationFile="MyInstaller.msi"
             ApplicationName="My Program"
             BootstrapperItems="@(BootstrapperFile)" 
             ComponentsLocation="Relative" 
             CopyComponents="True" 
             OutputPath="$(OutputPath)" 
             Path="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\" />   
    </Target>