如何在没有互联网连接的客户端的WiX引导安装程序中包含.NET框架包



我正在编写一个WiX安装程序,它有一个.NET 4完整的pre-req,所以我使用Burn来生成一个引导安装程序。这很好用,只是我不想在安装过程中从互联网下载.NET安装程序,而是想将其包含在安装程序中,这样没有互联网连接的客户端就可以使用它。

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

Bundle.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:DevelopmentBoristrunkApplicationsInstallerMyProductSetup.CustomActionsbinDebugMyProductSetup.CustomActions.dll
------ Build started: Project: MyProductSetup, Configuration: Debug x86 ------
        C:Program Files (x86)WiX Toolset v3.7binHeat.exe dir "C:Deployed BorisAPI" -cg APIComponents -dr APIFOLDER -sreg -srd -var var.APISourceDir -ag -sfrag -out AutoGeneratedAPIFiles.wxs
        C:Program Files (x86)WiX Toolset v3.7binHeat.exe dir "C:Deployed BorisSSO" -cg SSOComponents -dr SSOFOLDER -sreg -srd -var var.SSOSourceDir -ag -sfrag -out AutoGeneratedSSOFiles.wxs
        C:Program Files (x86)WiX Toolset v3.7binHeat.exe dir "C:Deployed BorisWebsite" -cg WebsiteComponents -dr WEBSITEFOLDER -sreg -srd -var var.WebsiteSourceDir -ag -sfrag -out AutoGeneratedWebsiteFiles.wxs
        C:Program Files (x86)WiX Toolset v3.7binHeat.exe dir "C:Deployed BorisDatabase Scripts" -cg DatabaseScriptsComponents -dr DATABASESCRIPTSFOLDER -sreg -srd -var var.DatabaseScriptsSourceDir -ag -sfrag -out AutoGeneratedDatabaseScriptsFiles.wxs
        C:Program Files (x86)WiX Toolset v3.7bincandle.exe -wx -dDebug -d"APISourceDir=C:Deployed MyProductAPI" -d"SSOSourceDir=C:Deployed MyProductSSO" -d"WebsiteSourceDir=C:Deployed MyProductWebsite" -d"DatabaseScriptsSourceDir=C:deployed MyProductDatabase Scripts" -dVersion=4.0.0 -d"DevEnvDir=C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDE\" -dSolutionDir=C:DevelopmentMyProducttrunkApplicationsInstaller -dSolutionExt=.sln -dSolutionFileName=MyProductSetup.sln -dSolutionName=MyProductSetup -dSolutionPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.sln -dConfiguration=Debug -dOutDir=binDebug -dPlatform=x86 -dProjectDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup -dProjectExt=.wixproj -dProjectFileName=MyProductSetup.wixproj -dProjectName=MyProductSetup -dProjectPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupMyProductSetup.wixproj -dTargetDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupbinDebug -dTargetExt=.msi -dTargetFileName=MyProductSetup.msi -dTargetName=MyProductSetup -dTargetPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupbinDebugMyProductSetup.msi -dMyProductSetup.CustomActions.Configuration=Debug -d"MyProductSetup.CustomActions.FullConfiguration=Debug|x86" -dMyProductSetup.CustomActions.Platform=x86 -dMyProductSetup.CustomActions.ProjectDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActions -dMyProductSetup.CustomActions.ProjectExt=.csproj -dMyProductSetup.CustomActions.ProjectFileName=MyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.ProjectName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.ProjectPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActionsMyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.TargetDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActionsbinDebug -dMyProductSetup.CustomActions.TargetExt=.dll -dMyProductSetup.CustomActions.TargetFileName=MyProductSetup.CustomActions.dll -dMyProductSetup.CustomActions.TargetName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.TargetPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActionsbinDebugMyProductSetup.CustomActions.dll -out objDebugpth2D6B79CE7AF38B591B0D975BED49C71F -pedantic -arch x86 -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixNetFxExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixUtilExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixIIsExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixUIExtension.dll" AutoGeneratedAPIFiles.wxs AutoGeneratedDatabaseScriptsFiles.wxs AutoGeneratedSSOFiles.wxs AutoGeneratedWebsiteFiles.wxs
        C:Program Files (x86)WiX Toolset v3.7bincandle.exe -wx -dDebug -d"APISourceDir=C:Deployed MyProductAPI" -d"SSOSourceDir=C:Deployed MyProductSSO" -d"WebsiteSourceDir=C:Deployed MyProductWebsite" -d"DatabaseScriptsSourceDir=C:deployed MyProductDatabase Scripts" -dVersion=4.0.0 -d"DevEnvDir=C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDE\" -dSolutionDir=C:DevelopmentMyProducttrunkApplicationsInstaller -dSolutionExt=.sln -dSolutionFileName=MyProductSetup.sln -dSolutionName=MyProductSetup -dSolutionPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.sln -dConfiguration=Debug -dOutDir=binDebug -dPlatform=x86 -dProjectDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup -dProjectExt=.wixproj -dProjectFileName=MyProductSetup.wixproj -dProjectName=MyProductSetup -dProjectPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupMyProductSetup.wixproj -dTargetDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupbinDebug -dTargetExt=.msi -dTargetFileName=MyProductSetup.msi -dTargetName=MyProductSetup -dTargetPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupbinDebugMyProductSetup.msi -dMyProductSetup.CustomActions.Configuration=Debug -d"MyProductSetup.CustomActions.FullConfiguration=Debug|x86" -dMyProductSetup.CustomActions.Platform=x86 -dMyProductSetup.CustomActions.ProjectDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActions -dMyProductSetup.CustomActions.ProjectExt=.csproj -dMyProductSetup.CustomActions.ProjectFileName=MyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.ProjectName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.ProjectPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActionsMyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.TargetDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActionsbinDebug -dMyProductSetup.CustomActions.TargetExt=.dll -dMyProductSetup.CustomActions.TargetFileName=MyProductSetup.CustomActions.dll -dMyProductSetup.CustomActions.TargetName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.TargetPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActionsbinDebugMyProductSetup.CustomActions.dll -out objDebugpth8A17003C77C5FED13E7347DB7040BE89 -pedantic -arch x86 -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixNetFxExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixUtilExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixIIsExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixUIExtension.dll" CustomPagesDatabaseServer.wxs CustomPagesEmailMode.wxs CustomPagesRegistration.wxs CustomPagesWebServer.wxs CustomPagesUIFlow.wxs
        C:Program Files (x86)WiX Toolset v3.7bincandle.exe -wx -dDebug -d"APISourceDir=C:Deployed MyProductAPI" -d"SSOSourceDir=C:Deployed MyProductSSO" -d"WebsiteSourceDir=C:Deployed MyProductWebsite" -d"DatabaseScriptsSourceDir=C:deployed MyProductDatabase Scripts" -dVersion=4.0.0 -d"DevEnvDir=C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDE\" -dSolutionDir=C:DevelopmentMyProducttrunkApplicationsInstaller -dSolutionExt=.sln -dSolutionFileName=MyProductSetup.sln -dSolutionName=MyProductSetup -dSolutionPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.sln -dConfiguration=Debug -dOutDir=binDebug -dPlatform=x86 -dProjectDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup -dProjectExt=.wixproj -dProjectFileName=MyProductSetup.wixproj -dProjectName=MyProductSetup -dProjectPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupMyProductSetup.wixproj -dTargetDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupbinDebug -dTargetExt=.msi -dTargetFileName=MyProductSetup.msi -dTargetName=MyProductSetup -dTargetPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupbinDebugMyProductSetup.msi -dMyProductSetup.CustomActions.Configuration=Debug -d"MyProductSetup.CustomActions.FullConfiguration=Debug|x86" -dMyProductSetup.CustomActions.Platform=x86 -dMyProductSetup.CustomActions.ProjectDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActions -dMyProductSetup.CustomActions.ProjectExt=.csproj -dMyProductSetup.CustomActions.ProjectFileName=MyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.ProjectName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.ProjectPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActionsMyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.TargetDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActionsbinDebug -dMyProductSetup.CustomActions.TargetExt=.dll -dMyProductSetup.CustomActions.TargetFileName=MyProductSetup.CustomActions.dll -dMyProductSetup.CustomActions.TargetName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.TargetPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActionsbinDebugMyProductSetup.CustomActions.dll -out objDebugpthC8EF85A2A1A4FD77C0CA016DD028CBFF -pedantic -arch x86 -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixNetFxExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixUtilExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixIIsExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixUIExtension.dll" IISAPI.wxs IISSSO.wxs IISWebsite.wxs
        C:Program Files (x86)WiX Toolset v3.7bincandle.exe -wx -dDebug -d"APISourceDir=C:Deployed MyProductAPI" -d"SSOSourceDir=C:Deployed MyProductSSO" -d"WebsiteSourceDir=C:Deployed MyProductWebsite" -d"DatabaseScriptsSourceDir=C:deployed MyProductDatabase Scripts" -dVersion=4.0.0 -d"DevEnvDir=C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDE\" -dSolutionDir=C:DevelopmentMyProducttrunkApplicationsInstaller -dSolutionExt=.sln -dSolutionFileName=MyProductSetup.sln -dSolutionName=MyProductSetup -dSolutionPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.sln -dConfiguration=Debug -dOutDir=binDebug -dPlatform=x86 -dProjectDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup -dProjectExt=.wixproj -dProjectFileName=MyProductSetup.wixproj -dProjectName=MyProductSetup -dProjectPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupMyProductSetup.wixproj -dTargetDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupbinDebug -dTargetExt=.msi -dTargetFileName=MyProductSetup.msi -dTargetName=MyProductSetup -dTargetPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupbinDebugMyProductSetup.msi -dMyProductSetup.CustomActions.Configuration=Debug -d"MyProductSetup.CustomActions.FullConfiguration=Debug|x86" -dMyProductSetup.CustomActions.Platform=x86 -dMyProductSetup.CustomActions.ProjectDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActions -dMyProductSetup.CustomActions.ProjectExt=.csproj -dMyProductSetup.CustomActions.ProjectFileName=MyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.ProjectName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.ProjectPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActionsMyProductSetup.CustomActions.csproj -dMyProductSetup.CustomActions.TargetDir=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActionsbinDebug -dMyProductSetup.CustomActions.TargetExt=.dll -dMyProductSetup.CustomActions.TargetFileName=MyProductSetup.CustomActions.dll -dMyProductSetup.CustomActions.TargetName=MyProductSetup.CustomActions -dMyProductSetup.CustomActions.TargetPath=C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetup.CustomActionsbinDebugMyProductSetup.CustomActions.dll -out objDebug -pedantic -arch x86 -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixNetFxExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixUtilExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixIIsExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixUIExtension.dll" Main.wxs
        C:Program Files (x86)WiX Toolset v3.7binLight.exe -out C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupbinDebugMyProductSetup.msi -pdbout C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupbinDebugMyProductSetup.wixpdb -wx -cultures:null -dConfiguration=Debug -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixNetFxExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixUtilExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixIIsExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixUIExtension.dll" -pedantic -contentsfile objDebugMyProductSetup.wixproj.BindContentsFileListnull.txt -outputsfile objDebugMyProductSetup.wixproj.BindOutputsFileListnull.txt -builtoutputsfile objDebugMyProductSetup.wixproj.BindBuiltOutputsFileListnull.txt -wixprojectfile C:DevelopmentMyProducttrunkApplicationsInstallerMyProductSetupMyProductSetup.wixproj objDebugpth2D6B79CE7AF38B591B0D975BED49C71FAPIFiles.wixobj objDebugpth2D6B79CE7AF38B591B0D975BED49C71FDatabaseScriptsFiles.wixobj objDebugpth2D6B79CE7AF38B591B0D975BED49C71FSSOFiles.wixobj objDebugpth2D6B79CE7AF38B591B0D975BED49C71FWebsiteFiles.wixobj objDebugpth8A17003C77C5FED13E7347DB7040BE89DatabaseServer.wixobj objDebugpth8A17003C77C5FED13E7347DB7040BE89EmailMode.wixobj objDebugpth8A17003C77C5FED13E7347DB7040BE89Registration.wixobj objDebugpth8A17003C77C5FED13E7347DB7040BE89WebServer.wixobj objDebugpth8A17003C77C5FED13E7347DB7040BE89UIFlow.wixobj objDebugpthC8EF85A2A1A4FD77C0CA016DD028CBFFAPI.wixobj objDebugpthC8EF85A2A1A4FD77C0CA016DD028CBFFSSO.wixobj objDebugpthC8EF85A2A1A4FD77C0CA016DD028CBFFWebsite.wixobj objDebugMain.wixobj
------ Build started: Project: MyProductBootstrapper, Configuration: Debug x86 ------
        C:Program Files (x86)WiX Toolset v3.7binLight.exe -out C:DevelopmentMyProducttrunkApplicationsInstallerMyProductBootstrapperbinDebugMyProductSetup.exe -pdbout C:DevelopmentMyProducttrunkApplicationsInstallerMyProductBootstrapperbinDebugMyProductSetup.wixpdb -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixNetFxExtension.dll" -ext "C:Program Files (x86)WiX Toolset v3.7bin\WixBalExtension.dll" -contentsfile objDebugMyProductBootstrapper.wixproj.BindContentsFileList.txt -outputsfile objDebugMyProductBootstrapper.wixproj.BindOutputsFileList.txt -builtoutputsfile objDebugMyProductBootstrapper.wixproj.BindBuiltOutputsFileList.txt -wixprojectfile C:DevelopmentMyProducttrunkApplicationsInstallerMyProductBootstrapperMyProductBootstrapper.wixproj objDebugBundle.wixobj
========== Build: 3 succeeded or up-to-date, 0 failed, 0 skipped ==========

这篇文章的意思是,你可以将任何标记为可下载的有效载荷与burn-exe一起发送,下载将被跳过。

相反,如果您想捆绑包文件(在内部.exe容器中),则必须在没有标记为可下载的有效载荷的情况下定义包。WiX 3.7附带的.NET包定义中没有一个能做到这一点,所以你必须自己编写。

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

相关内容

最新更新