在 Window 安装程序 XML 中使用 Bootstrapper 制作单个 Bundle 项目
Posted
技术标签:
【中文标题】在 Window 安装程序 XML 中使用 Bootstrapper 制作单个 Bundle 项目【英文标题】:make single Bundle project using Bootstrapper in Window installer XML 【发布时间】:2013-05-24 12:14:39 【问题描述】:我已经为 Outlook 加载项完成了一个项目。然后我使用 WIX 为这个插件创建了一个安装文件。但是我们也需要解决依赖关系,所以我使用 wix 创建了一个引导程序项目,它首先检查依赖关系,然后使用安装文件安装加载项。它运作良好。 问题 有没有办法将这两个设置项目合并到一个项目中。 ? 这是我的引导程序代码。
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Bundle Name="OutlookReport" Version="1.0.0.0" Manufacturer="Tzunami" UpgradeCode="93597211-ba8c-44f0-9f73-18e7afc47d85">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" >
<bal:WixStandardBootstrapperApplication LicenseFile="Resource\\EULA.rtf" LogoFile="Resource\\TzunamiLogo.png"
SuppressOptionsUI="yes"/>
</BootstrapperApplicationRef>
<util:ComponentSearch Id="SearchOutlook2010" Guid="CFF13DD8-6EF2-49EB-B265-E3BFC6501C1D" Variable="Outlook2010"/>
<util:ComponentSearch Id="SearchOutlook2010PIA" Guid="1D844339-3DAE-413E-BC13-62D6A52816B2" Variable="Outlook2010PIA"/>
<util:ComponentSearch Id="SearchOutlook2013" Guid="F9F828D5-9F0B-46F9-9E3E-9C59F3C5E136" Variable="Outlook2013"/>
<bal:Condition Message="This Setup need Outlook 2010 or 2013 to be installed">
Outlook2010 OR Outlook2010PIA OR Outlook2013
</bal:Condition>
<util:RegistrySearch Id="VSTORuntimeTest" Root="HKLM" Key="SOFTWARE\Microsoft\VSTO Runtime Setup\v4R\" Value="VSTORFeature_CLR40" Variable="VSTORFeature"/>
<util:RegistrySearch Id="VSTORuntimeVersionV4R" Root="HKLM" Key="SOFTWARE\Microsoft\VSTO Runtime Setup\v4R\" Value="Version" Variable="VSTORVersionV4R"/>
<util:RegistrySearch Id="VSTORuntimeVersionV4" Root="HKLM" Key="SOFTWARE\Microsoft\VSTO Runtime Setup\v4R\" Value="Version" Variable="VSTORVersionV4"/>
<Chain>
<PackageGroupRef Id="NetFx40Web"/>
<ExePackage Id="Downloading_Microsoft_VSTORuntime" SourceFile="Resource\\vstor_redist.exe" Permanent="yes" Vital="yes" Cache="no" Compressed="no"
DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=158917"
PerMachine="yes"
InstallCommand="/q /norestart"
DetectCondition="VSTORFeature"
InstallCondition="NOT VSTORFeature OR NOT (VSTORVersionV4R >=v10.0.40303) OR NOT (VSTORVersionV4 >=v10.0.21022)" />
<MsiPackage SourceFile="$(var.SetupOutlookReports.TargetPath)" Vital="yes" Compressed="yes" Id="OutlookReports" />
</Chain>
</Bundle>
</Wix>
【问题讨论】:
这通常不会完成,需要一些工作。为什么? 我的老板要我将这些安装文件合并到一个安装文件中。我也尝试过,但没有这样做,因为无法在 Bootstrapper 的链中添加 vsto(加载项的输出)。如果有任何方法,请建议我必须做什么样的工作才能实现它。感谢您的回复 我想我误解了。我在想您想将两个 .wixproj 文件重写为一个 .wixproj 文件。你的意思是你希望 vstor_redist.exe 像 .msi 一样嵌入到引导程序 .exe 中?请更全面地解释您想要的结果。 你是对的。我想将这两个 .wixproj 合并到单个项目中,而不是像 vstor_redist.exe 这样的设置文件。有什么办法吗? 这是XY-Problem吗?根据设计,WiX 引导程序是一个单独的项目,与某些人可能习惯的 Visual Studio Bootstrapper 不同。您的问题真的与 WiX 引导程序如何安装有关吗?例如。为包创建一个添加/删除程序条目? 【参考方案1】:您可以将一个引导程序链接到另一个引导程序中。只需在你的 exepackage 中将 Compressed="no" 修改为 Compressed="yes",这将嵌入到当前项目中。
【讨论】:
感谢您的回复,但这不是我想要的。我想将这两个 .wixproj 合并到单个 .wixproj 项目中。以上是关于在 Window 安装程序 XML 中使用 Bootstrapper 制作单个 Bundle 项目的主要内容,如果未能解决你的问题,请参考以下文章
spring boo的简单搭建(eclipse+springboot + redis + mysql + thymeleaf)