以下是我的Bootstrapper项目的完整Bundle.wxs
。
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Bundle UpgradeCode="493993E8-50F0-43B2-BEF7-A57F4EAD374D" Name="MYAPPlication Name" Version="1.0.0.0" IconSourceFile="D:\..\Resources\Application_icon.ico">
<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">
<!--<Payload Name="BootstrapperCore.config" SourceFile="$(var.MYAPPlication .TargetDir)\MYAPPlication .BootstrapperCore.config"/>-->
<Payload SourceFile="D:\..\MYAPPlication.msi"/>
<!--<Payload SourceFile="NetfxLicense.rtf"/>-->
</BootstrapperApplicationRef>
<Chain>
<PackageGroupRef Id="Netfx4Full"/>
<MsiPackage Name="MSIApplication.msi" Compressed="yes" SourceFile="D:\.\MSIApplication.msi" Vital="yes">
<MsiProperty Name="ARPSYSTEMCOMPONENT" Value="1"/>
</MsiPackage>
</Chain>
</Bundle>
<Fragment>
<WixVariable
Id="WixMbaPrereqPackageId"
Value="Netfx4Full" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" />
<util:RegistrySearch
Root="HKLM"
Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"
Value="Version"
Variable="Netfx4FullVersion" />
<util:RegistrySearch
Root="HKLM"
Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"
Value="Version"
Variable="Netfx4x64FullVersion"
Win64="yes" />
<PackageGroup
Id="Netfx4Full">
<ExePackage
Id="Netfx4Full"
Cache="no"
Compressed="no"
PerMachine="yes"
Permanent="yes"
Vital="yes"
SourceFile="D:\...\dotNetFx40_Full_x86_x64.exe"
DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=164193"
DetectCondition="Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)" />
</PackageGroup>
</Fragment>
</Wix>
在构建上述引导项目之后,我得到两个文件,1)包含的框架(dotNetFx40_Full_x86_x64.exe
)和另一个是带有MYApplication名称和ICON(MYAPPlication.exe
)的EXE文件。我在我的系统中删除了框架并双击了MYAPPlication.exe
,它安装了框架并关闭了。我的实际msi应用程序(MSIApplication.msi
)在框架安装后没有安装我所包含的内容。
我已经有一个安装项目并输出.msi文件(MSIApplication.msi
)。我在Bundle.wxs
中添加了这个msi。
我需要安装框架(如果不存在)并且应该安装我的msi应用程序(MSIApplication.msi
),当用户双击MYAPPlication.exe
时。是否可以使用wix bootstraper项目。