我要接管这个项目,并且没有权限与最初设置它的人接触。目前,捆绑包中包含.net4。这样做的目的是删除文件,并让最终用户手动下载.net。我试图设置捆绑包以检查已安装的.net版本(如果有),如果不符合要求,则显示带有下载链接的详细信息,然后中止安装并关闭。
每次我尝试删除指向.net包的变量时,都会出现构建错误。到目前为止,这就是我所拥有的。
<Chain>
<PackageGroupRef Id='Netfx4Full' />
<MsiPackage SourceFile="$(var.TargetDir)Client.msi" Id="Client" Cache="no" Visible="no" ForcePerMachine="yes">
<MsiProperty Name="INSTALLDIR" Value="[InstallFolder]"/>
</MsiPackage>
</Chain>
</Bundle>
<Fragment>
<PropertyRef Id="NETFRAMEWORK40FULL"/>
<Variable Name="InstallationPath" bal:Overridable="yes" />
<WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" />
<Variable Name="DisplayVersion" Value="$(var.BundleVersion)" />
<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" />
<Condition Message="This application requires .NET Framework 4.0. Please install the .NET Framework then run this installer again.">
<![CDATA[Installed OR NETFRAMEWORK40]]>
</Condition>
<PackageGroup Id="Netfx4Full">
<ExePackage Id="Netfx4Full" Cache="no" PerMachine="yes" Permanent="yes" Vital="yes" Compressed="no"
SourceFile="DotNetInstallers/dotnetfx40_full_x86_x64.exe"
DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=164193"
DetectCondition="Netfx4FullVersion OR Netfx4x64FullVersion">
</ExePackage>
</PackageGroup>
</Fragment>
任何帮助,将不胜感激。
基于这些行,您似乎正在使用ManagedBootstrapperApplicationHost。
<WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" />
ManagedBootstrapperApplicationHost是WiX中的内置方式,可以使用.NET(托管BA或MBA)中内置的自定义BootstrapperApplication。MBAHost要求您将.NET打包在捆绑包中。如果您担心捆绑包的大小,则可以使用WixNetFxExtension中的NetFx4Web软件包。这将使捆绑软件在运行时下载Web安装程序。您可以使用mbapreq.thm和mbapreq.wxl自定义在安装.NET时出现的用户界面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句