Wix Burn: Basic UI handling if No Net Framework is there

こ雲淡風輕ζ 提交于 2019-12-10 21:49:50

问题


I wrote a Boostrapper UI in C# for Net Framework 2.0 using Win-Forms. It started working fine and designed forms are responding as expected.

Here is my Wix Bundle Code:

<?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>

As you can see that it doesn't include NetFX package and as it requires Net-Framework 2.0, I experimented with renaming the Net Framework registry keys:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup-Renamed

and 32 bit

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup-Renamed

so that it won't be able to detect it. This resulted in displaying a very basic UI: i.e.

I believe , this was displayed due to following markups in my Bundle, but I'm not sure about that

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

However, when I clicked "Accept and Install" nothing happened and buttons just got disappeared. That may be because I added no NetFx Package, neither any reference to WixNetFxExtension. (And I will definitely gonna add these and will see results later).

Question: I want to edit this basic UI so if my user try to install it on Windows XP (with no Net Framework), he/she would get the UI as I will design, not this basic one. So how can I edit this basic UI?

I feel, I'm missing some basic thing here, but need some guidance.. would really appreciate any help/guidance.

Regards


回答1:


I was able to solve this after finding a thread on Wix User's mailing list. Here it is:
customizing burn prerequisite boostrapper image in theme

So this screen is known as Burn Prerequisite and it has a special WixVariable ID. Here is code from my Bootstrapper, depicting the use of my own custom theme for Burn's pre-req screen:

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

And any resources like Logo.png, Banner.bmp and NetfxLicense.rtf etc which you have referenced in MbaPrereqTheme.xml, would have to be part of Bootstrapper as a PayLoad:

<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>

And this started working just like as I wished :).

Regards



来源:https://stackoverflow.com/questions/21333045/wix-burn-basic-ui-handling-if-no-net-framework-is-there

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!