【发布时间】:2014-04-14 21:43:30
【问题描述】:
我的应用程序使用 WIX 3.8,它需要在机器上安装 .NET Framework 3.5 SP1 作为先决条件。
我检查了 bundle.wxs 中的 .net 框架,执行时遇到以下问题。
1. 引导程序总是尝试安装 .net 框架,即使配置文件中定义的支持的运行时版本是 v3.5。
2. 在接受并继续安装时,boostrapper 无法加载并且设置突然中断。
从日志文件中,我看到在已安装 .net 3.5 SP1 的机器上测试时,检测条件的条件是成功的。但它退出并显示以下消息:“先决条件已安装。引导程序应用程序将不会重新加载以防止无限循环。”
谁能告诉我为什么 BootStrapper 总是触发 .net 框架,即使已经安装在机器上?
附上.net检查的代码sn-p以及配置文件更改:
<PackageGroup Id="Netfx35Full" >
<ExePackage Id="Netfx35Full" DisplayName="Microsoft .NET Framework 3.5" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="no" SourceFile='..\prereq\dotnetfx35setup.exe' InstallCommand='/q /norestart'
RepairCommand="/q /norestart" UninstallCommand="/q /norestart" InstallCondition="(NOT Netfx35FullVersion AND Netfx35FullVersion < v3.5.30729.1)
AND (NOT Netfx35x64FullVersion AND Netfx35x64FullVersion < v3.5.30729.1) AND NOT Netfx4FullVersion OR NOT Netfx4x64FullVersion " DetectCondition="(Netfx35FullVersion AND Netfx35FullVersion >= v3.5.30729.1) OR (Netfx35x64FullVersion AND Netfx35x64FullVersion >= v3.5.30729.1) OR Netfx4FullVersion OR Netfx4x64FullVersion"/>
</PackageGroup>
配置文件
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v3.5" />
</startup>
<wix.bootstrapper>
<host assemblyName="SCM.BootstrapperApplication">
<supportedFramework version="v3.5" />
</host>
</wix.bootstrapper>
【问题讨论】:
标签: wix bootstrapper