User interface wixburn:如果没有网络框架,基本的UI处理

User interface wixburn:如果没有网络框架,基本的UI处理,user-interface,wix,bootstrapper,wix3.7,.net-framework-version,User Interface,Wix,Bootstrapper,Wix3.7,.net Framework Version,我使用Win表单在C#for Net Framework 2.0中编写了一个Boostrapper UI。它开始运作良好,设计的表单也按预期响应 以下是我的Wix捆绑包代码: <?define TargetFile=$(var.MyBA.TargetDir)$(var.MyBA.TargetFileName)?> <?define BootstrapConfigFile=$(var.MyBA.ProjectDir)BootstrapperCore.config?>

我使用Win表单在C#for 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>
和32位

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup-Renamed
这样它就无法检测到它。这导致显示了一个非常基本的UI:。

我相信,这是由于我的捆绑包中的以下标记而显示的,但我不确定这一点

<WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" />

然而,当我点击“接受并安装”时,什么也没发生,按钮也不见了。这可能是因为我没有添加NetFx包,也没有添加对WixNetFxExtension的任何引用。(我肯定会添加这些,稍后会看到结果)

问题:我想编辑此基本用户界面,以便如果我的用户尝试在Windows XP(没有网络框架)上安装它,他/她将获得我将设计的用户界面,而不是此基本用户界面。那么我如何编辑这个基本UI呢

我觉得,我缺少一些基本的东西,但需要一些指导。。非常感谢您的帮助/指导


关于

在Wix用户的邮件列表中找到一个线程后,我能够解决这个问题。在这里:

因此,这个屏幕被称为Burn Premission,它有一个特殊的WixVariable ID。下面是我的引导程序中的代码,描述了我自己的自定义主题在Burn的pre-req屏幕中的使用:

<WixVariable Id="PreqbaThemeXml" Value="..\resources\MbaPrereqTheme.xml" />
<WixVariable Id="PreqbaThemeWxl" Value="..\resources\MbaPrereqTheme.wxl" />

并且,您在MbaPrereqTheme.xml中引用的任何资源,如Logo.png、Banner.bmp和NetfxLicense.rtf等,都必须作为有效负载作为引导程序的一部分:

<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost" >
      <Payload SourceFile="$(var.BootstrapConfigFile)"/>
      <Payload SourceFile="$(var.MyBootstrapDll)"/>
      <Payload SourceFile="$(env.WIX)\SDK\Microsoft.Deployment.WindowsInstaller.dll"/>

<!-- Following are required as payload and to be used by Pre-Req screen.-->      

      <Payload SourceFile="..\resources\logo.png"/>
      <Payload SourceFile="..\resources\Banner.bmp"/>
      <Payload SourceFile="..\resources\NetfxLicense.rtf"/>

    </BootstrapperApplicationRef>

这就像我希望的那样开始起作用:)


关于

很遗憾,整个wix/burn系统功能强大,但缺乏这么多文档。谢谢你的洞察力!
<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost" >
      <Payload SourceFile="$(var.BootstrapConfigFile)"/>
      <Payload SourceFile="$(var.MyBootstrapDll)"/>
      <Payload SourceFile="$(env.WIX)\SDK\Microsoft.Deployment.WindowsInstaller.dll"/>

<!-- Following are required as payload and to be used by Pre-Req screen.-->      

      <Payload SourceFile="..\resources\logo.png"/>
      <Payload SourceFile="..\resources\Banner.bmp"/>
      <Payload SourceFile="..\resources\NetfxLicense.rtf"/>

    </BootstrapperApplicationRef>