【发布时间】:2014-01-24 12:43:20
【问题描述】:
我使用 Win-Forms 在 C# 中为 Net Framework 2.0 编写了一个 Boostrapper UI。它开始正常工作,并且设计的表单按预期响应。
这是我的 Wix 捆绑代码:
<?define TargetFile=$(var.MyBA.TargetDir)$(var.MyBA.TargetFileName)?>
<?define BootstrapConfigFile=$(var.MyBA.ProjectDir)BootstrapperCore.config?>
<Bundle Name="Bootstrapper1" Version="1.0.0.0" Manufacturer="Farrukh" UpgradeCode="54c4a4a4-dca8-4ae4-b2f4-5e3f3fd8cb92">
<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">
<Payload SourceFile="$(var.BootstrapConfigFile)"/>
<Payload SourceFile="$(var.TargetFile)"/>
<Payload SourceFile="$(env.WIX)\SDK\Microsoft.Deployment.WindowsInstaller.dll"/>
</BootstrapperApplicationRef>
<WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" />
<Chain>
<!--<PackageGroupRef Id='Netfx4Full' />-->
<MsiPackage Id="MyInstaller"
Cache="no"
Visible="yes"
DisplayInternalUI="yes"
SourceFile="MyProduct.msi"
/>
</Chain>
</Bundle>
如您所见,它不包含 NetFX 包,并且需要 Net-Framework 2.0,因此我尝试重命名 Net Framework 注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup-Renamed
和 32 位
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup-Renamed
这样它就无法检测到它。这导致显示一个非常基本的 UI:即
我相信,这是由于我的 Bundle 中的以下标记而显示的,但我不确定
<WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" />
但是,当我点击“接受并安装”时,什么也没发生,按钮就消失了。这可能是因为我没有添加 NetFx 包,也没有添加任何对 WixNetFxExtension 的引用。 (我肯定会添加这些,稍后会看到结果)。
问题:我想编辑这个基本 UI,所以如果我的用户尝试在 Windows XP(没有 Net Framework)上安装它,他/她会得到我设计的 UI,而不是这个基本的。那么如何编辑这个基本 UI?
我觉得,我在这里遗漏了一些基本的东西,但需要一些指导.. 非常感谢任何帮助/指导。
问候
【问题讨论】:
标签: user-interface wix bootstrapper wix3.7 .net-framework-version