2

我正在编写一个具有 .NET 4 完整 pre-req 的 WiX 安装程序,因此我使用 Burn 来生成一个引导安装程序。这工作正常,除了在安装过程中从 Internet 下载 .NET 安装程序,我想将其包含在安装程序本身中,以便没有 Internet 连接的客户端能够使用它。

我发现这篇文章表明它是可能的,但我在我的 Bundle.wxs 文件下创建了一个带有 .NET 安装程序 (dotNetFx40_Full_setup.exe) 的 redist 文件夹,但在我编译时它没有选择它。

捆绑.wxs:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Bundle Name="MyProduct" Version="1.0.0.0" Manufacturer="Me" UpgradeCode="96088bf4-1776-42d0-9ab9-ba3fa9dc7ec3" IconSourceFile="..\MyProduct.ico" SplashScreenSourceFile="..\MyProduct.bmp">
        <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />    

        <Chain>
      <PackageGroupRef Id="NetFx40Redist"/>
      <MsiPackage DisplayInternalUI="yes" SourceFile="..\bin\$(var.Configuration)\setup.msi" />
        </Chain>
    </Bundle>
</Wix>

构建日志:

------ Build started: Project: MyProductSetup.CustomActions, Configuration: Debug x86 ------
  All packages listed in packages.config are already installed.
  MyProductSetup.CustomActions -> C:\Development\Boris\trunk\Applications\Installer\MyProductSetup.CustomActions\bin\Debug\MyProductSetup.CustomActions.dll
------ Build started: Project: MyProductSetup, Configuration: Debug x86 ------
        C:\Program Files (x86)\WiX Toolset v3.7\bin\Heat.exe dir "C:\Deployed Boris\API" -cg APIComponents -dr APIFOLDER -sreg -srd -var var.APISourceDir -ag -sfrag -out AutoGenerated\APIFiles.wxs
        C:\Program Files (x86)\WiX Toolset v3.7\bin\Heat.exe dir "C:\Deployed Boris\SSO" -cg SSOComponents -dr SSOFOLDER -sreg -srd -var var.SSOSourceDir -ag -sfrag -out AutoGenerated\SSOFiles.wxs
        C:\Program Files (x86)\WiX Toolset v3.7\bin\Heat.exe dir "C:\Deployed Boris\Website" -cg WebsiteComponents -dr WEBSITEFOLDER -sreg -srd -var var.WebsiteSourceDir -ag -sfrag -out AutoGenerated\WebsiteFiles.wxs
        C:\Program Files (x86)\WiX Toolset v3.7\bin\Heat.exe dir "C:\Deployed Boris\Database Scripts" -cg DatabaseScriptsComponents -dr DATABASESCRIPTSFOLDER -sreg -srd -var var.DatabaseScriptsSourceDir -ag -sfrag -out AutoGenerated\DatabaseScriptsFiles.wxs
        C:\Program Files (x86)\WiX Toolset v3.7\bin\candle.exe -wx -dDebug -d"APISourceDir=C:\Deployed MyProduct\API" -d"SSOSourceDir=C:\Deployed MyProduct\SSO" -d"WebsiteSourceDir=C:\Deployed MyProduct\Website" -d"DatabaseScriptsSourceDir=C:\deployed MyProduct\Database Scripts" -dVersion=4.0.0 -d"DevEnvDir=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\\" -dSolutionDir=C:\Development\MyProduct\trunk\Applications\Installer\ -dSolutionExt=.sln -dSolutionFileName=MyProductSetup.sln -dSolutionName=MyProductSetup -dSolutionPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.sln -dConfiguration=Debug -dOutDir=bin\Debug\ -dPlatform=x86 -dProjectDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\ -dProjectExt=.wixproj -dProjectFileName=MyProductSetup.wixproj -dProjectName=MyProductSetup -dProjectPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\MyProductSetup.wixproj -dTargetDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\bin\Debug\ -dTargetExt=.msi -dTargetFileName=MyProductSetup.msi -dTargetName=MyProductSetup -dTargetPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\bin\Debug\MyProductSetup.msi -dMyProductSetup.CustomActions.Configuration=Debug -d"MyProductSetup.CustomActions.FullConfiguration=Debug|x86" -dMyProductSetup.CustomActions.Platform=x86 -dMyProductSetup.CustomActions.ProjectDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\ -dMyProductSetup.CustomActions.ProjectExt=.csproj -dMyProductSetup.CustomActions.ProjectFileName=MyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.ProjectName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.ProjectPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\MyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.TargetDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\bin\Debug\ -dMyProductSetup.CustomActions.TargetExt=.dll -dMyProductSetup.CustomActions.TargetFileName=MyProductSetup.CustomActions.dll -dMyProductSetup.CustomActions.TargetName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.TargetPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\bin\Debug\MyProductSetup.CustomActions.dll -out obj\Debug\pth2D6B79CE7AF38B591B0D975BED49C71F\ -pedantic -arch x86 -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixNetFxExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixUtilExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixIIsExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixUIExtension.dll" AutoGenerated\APIFiles.wxs AutoGenerated\DatabaseScriptsFiles.wxs AutoGenerated\SSOFiles.wxs AutoGenerated\WebsiteFiles.wxs
        C:\Program Files (x86)\WiX Toolset v3.7\bin\candle.exe -wx -dDebug -d"APISourceDir=C:\Deployed MyProduct\API" -d"SSOSourceDir=C:\Deployed MyProduct\SSO" -d"WebsiteSourceDir=C:\Deployed MyProduct\Website" -d"DatabaseScriptsSourceDir=C:\deployed MyProduct\Database Scripts" -dVersion=4.0.0 -d"DevEnvDir=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\\" -dSolutionDir=C:\Development\MyProduct\trunk\Applications\Installer\ -dSolutionExt=.sln -dSolutionFileName=MyProductSetup.sln -dSolutionName=MyProductSetup -dSolutionPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.sln -dConfiguration=Debug -dOutDir=bin\Debug\ -dPlatform=x86 -dProjectDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\ -dProjectExt=.wixproj -dProjectFileName=MyProductSetup.wixproj -dProjectName=MyProductSetup -dProjectPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\MyProductSetup.wixproj -dTargetDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\bin\Debug\ -dTargetExt=.msi -dTargetFileName=MyProductSetup.msi -dTargetName=MyProductSetup -dTargetPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\bin\Debug\MyProductSetup.msi -dMyProductSetup.CustomActions.Configuration=Debug -d"MyProductSetup.CustomActions.FullConfiguration=Debug|x86" -dMyProductSetup.CustomActions.Platform=x86 -dMyProductSetup.CustomActions.ProjectDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\ -dMyProductSetup.CustomActions.ProjectExt=.csproj -dMyProductSetup.CustomActions.ProjectFileName=MyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.ProjectName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.ProjectPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\MyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.TargetDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\bin\Debug\ -dMyProductSetup.CustomActions.TargetExt=.dll -dMyProductSetup.CustomActions.TargetFileName=MyProductSetup.CustomActions.dll -dMyProductSetup.CustomActions.TargetName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.TargetPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\bin\Debug\MyProductSetup.CustomActions.dll -out obj\Debug\pth8A17003C77C5FED13E7347DB7040BE89\ -pedantic -arch x86 -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixNetFxExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixUtilExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixIIsExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixUIExtension.dll" CustomPages\DatabaseServer.wxs CustomPages\EmailMode.wxs CustomPages\Registration.wxs CustomPages\WebServer.wxs CustomPages\UIFlow.wxs
        C:\Program Files (x86)\WiX Toolset v3.7\bin\candle.exe -wx -dDebug -d"APISourceDir=C:\Deployed MyProduct\API" -d"SSOSourceDir=C:\Deployed MyProduct\SSO" -d"WebsiteSourceDir=C:\Deployed MyProduct\Website" -d"DatabaseScriptsSourceDir=C:\deployed MyProduct\Database Scripts" -dVersion=4.0.0 -d"DevEnvDir=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\\" -dSolutionDir=C:\Development\MyProduct\trunk\Applications\Installer\ -dSolutionExt=.sln -dSolutionFileName=MyProductSetup.sln -dSolutionName=MyProductSetup -dSolutionPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.sln -dConfiguration=Debug -dOutDir=bin\Debug\ -dPlatform=x86 -dProjectDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\ -dProjectExt=.wixproj -dProjectFileName=MyProductSetup.wixproj -dProjectName=MyProductSetup -dProjectPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\MyProductSetup.wixproj -dTargetDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\bin\Debug\ -dTargetExt=.msi -dTargetFileName=MyProductSetup.msi -dTargetName=MyProductSetup -dTargetPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\bin\Debug\MyProductSetup.msi -dMyProductSetup.CustomActions.Configuration=Debug -d"MyProductSetup.CustomActions.FullConfiguration=Debug|x86" -dMyProductSetup.CustomActions.Platform=x86 -dMyProductSetup.CustomActions.ProjectDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\ -dMyProductSetup.CustomActions.ProjectExt=.csproj -dMyProductSetup.CustomActions.ProjectFileName=MyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.ProjectName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.ProjectPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\MyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.TargetDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\bin\Debug\ -dMyProductSetup.CustomActions.TargetExt=.dll -dMyProductSetup.CustomActions.TargetFileName=MyProductSetup.CustomActions.dll -dMyProductSetup.CustomActions.TargetName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.TargetPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\bin\Debug\MyProductSetup.CustomActions.dll -out obj\Debug\pthC8EF85A2A1A4FD77C0CA016DD028CBFF\ -pedantic -arch x86 -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixNetFxExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixUtilExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixIIsExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixUIExtension.dll" IIS\API.wxs IIS\SSO.wxs IIS\Website.wxs
        C:\Program Files (x86)\WiX Toolset v3.7\bin\candle.exe -wx -dDebug -d"APISourceDir=C:\Deployed MyProduct\API" -d"SSOSourceDir=C:\Deployed MyProduct\SSO" -d"WebsiteSourceDir=C:\Deployed MyProduct\Website" -d"DatabaseScriptsSourceDir=C:\deployed MyProduct\Database Scripts" -dVersion=4.0.0 -d"DevEnvDir=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\\" -dSolutionDir=C:\Development\MyProduct\trunk\Applications\Installer\ -dSolutionExt=.sln -dSolutionFileName=MyProductSetup.sln -dSolutionName=MyProductSetup -dSolutionPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.sln -dConfiguration=Debug -dOutDir=bin\Debug\ -dPlatform=x86 -dProjectDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\ -dProjectExt=.wixproj -dProjectFileName=MyProductSetup.wixproj -dProjectName=MyProductSetup -dProjectPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\MyProductSetup.wixproj -dTargetDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\bin\Debug\ -dTargetExt=.msi -dTargetFileName=MyProductSetup.msi -dTargetName=MyProductSetup -dTargetPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\bin\Debug\MyProductSetup.msi -dMyProductSetup.CustomActions.Configuration=Debug -d"MyProductSetup.CustomActions.FullConfiguration=Debug|x86" -dMyProductSetup.CustomActions.Platform=x86 -dMyProductSetup.CustomActions.ProjectDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\ -dMyProductSetup.CustomActions.ProjectExt=.csproj -dMyProductSetup.CustomActions.ProjectFileName=MyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.ProjectName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.ProjectPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\MyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.TargetDir=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\bin\Debug\ -dMyProductSetup.CustomActions.TargetExt=.dll -dMyProductSetup.CustomActions.TargetFileName=MyProductSetup.CustomActions.dll -dMyProductSetup.CustomActions.TargetName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.TargetPath=C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup.CustomActions\bin\Debug\MyProductSetup.CustomActions.dll -out obj\Debug\ -pedantic -arch x86 -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixNetFxExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixUtilExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixIIsExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixUIExtension.dll" Main.wxs
        C:\Program Files (x86)\WiX Toolset v3.7\bin\Light.exe -out C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\bin\Debug\MyProductSetup.msi -pdbout C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\bin\Debug\MyProductSetup.wixpdb -wx -cultures:null -dConfiguration=Debug -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixNetFxExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixUtilExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixIIsExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixUIExtension.dll" -pedantic -contentsfile obj\Debug\MyProductSetup.wixproj.BindContentsFileListnull.txt -outputsfile obj\Debug\MyProductSetup.wixproj.BindOutputsFileListnull.txt -builtoutputsfile obj\Debug\MyProductSetup.wixproj.BindBuiltOutputsFileListnull.txt -wixprojectfile C:\Development\MyProduct\trunk\Applications\Installer\MyProductSetup\MyProductSetup.wixproj obj\Debug\pth2D6B79CE7AF38B591B0D975BED49C71F\APIFiles.wixobj obj\Debug\pth2D6B79CE7AF38B591B0D975BED49C71F\DatabaseScriptsFiles.wixobj obj\Debug\pth2D6B79CE7AF38B591B0D975BED49C71F\SSOFiles.wixobj obj\Debug\pth2D6B79CE7AF38B591B0D975BED49C71F\WebsiteFiles.wixobj obj\Debug\pth8A17003C77C5FED13E7347DB7040BE89\DatabaseServer.wixobj obj\Debug\pth8A17003C77C5FED13E7347DB7040BE89\EmailMode.wixobj obj\Debug\pth8A17003C77C5FED13E7347DB7040BE89\Registration.wixobj obj\Debug\pth8A17003C77C5FED13E7347DB7040BE89\WebServer.wixobj obj\Debug\pth8A17003C77C5FED13E7347DB7040BE89\UIFlow.wixobj obj\Debug\pthC8EF85A2A1A4FD77C0CA016DD028CBFF\API.wixobj obj\Debug\pthC8EF85A2A1A4FD77C0CA016DD028CBFF\SSO.wixobj obj\Debug\pthC8EF85A2A1A4FD77C0CA016DD028CBFF\Website.wixobj obj\Debug\Main.wixobj
------ Build started: Project: MyProductBootstrapper, Configuration: Debug x86 ------
        C:\Program Files (x86)\WiX Toolset v3.7\bin\Light.exe -out C:\Development\MyProduct\trunk\Applications\Installer\MyProductBootstrapper\bin\Debug\MyProductSetup.exe -pdbout C:\Development\MyProduct\trunk\Applications\Installer\MyProductBootstrapper\bin\Debug\MyProductSetup.wixpdb -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixNetFxExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.7\bin\\WixBalExtension.dll" -contentsfile obj\Debug\MyProductBootstrapper.wixproj.BindContentsFileList.txt -outputsfile obj\Debug\MyProductBootstrapper.wixproj.BindOutputsFileList.txt -builtoutputsfile obj\Debug\MyProductBootstrapper.wixproj.BindBuiltOutputsFileList.txt -wixprojectfile C:\Development\MyProduct\trunk\Applications\Installer\MyProductBootstrapper\MyProductBootstrapper.wixproj obj\Debug\Bundle.wixobj
========== Build: 3 succeeded or up-to-date, 0 failed, 0 skipped ==========
4

1 回答 1

1

该帖子的意思是,您可以将任何标记为可下载的有效负载与刻录 exe 一起发送,并且将跳过下载。

相反,如果您想要捆绑包文件(在内部 .exe 容器内),那么您必须定义没有标记为可下载的有效负载的包。WiX 3.7 附带的.NET 包定义都没有这样做,因此您必须自己编写。

一个好的开始方法是复制一个下载有效负载并对其进行自定义的方法。这样,您将拥有相同的检测条件和安装参数。

于 2013-08-06T02:38:38.970 回答