wixtoolset / issues

WiX Toolset Issues Tracker
http://wixtoolset.org/
129 stars 36 forks source link

Prerequisite .net package not installed before running CustomBA #8720

Open EvgenPervenenko opened 2 weeks ago

EvgenPervenenko commented 2 weeks ago

WiX Version

5.0.1

.NET or MSBuild or Visual Studio Version

Microsoft Visual Studio Community 2022 Version 17.8.2 ASP.NET and Web Tools 17.8.358.6298

HeatWave Version

1.0.4.5

Windows Version

Windows 11 Pro 21H2 x64, Win 8.1 Pro x86

Repro Repo

No response

Repro Steps

  1. Wix Bundle
  2. Set prerequsite .net package
  3. Run application on system where there is no need .net version

Simple example: Bundle: `

`

Package1: `

`

Logs:

[3B0C:3FD8][2024-08-27T02:05:21]i001: Burn x86 v5.0.1+2f00cbe680fb01ab485d56f16de9cd19b133f875, Windows v6.3 x86 (Build 9600: Service Pack 0), path: C:\Users\yauheni.pervenenka\Downloads\Bundle\Bundle.exe [3B0C:3FD8][2024-08-27T02:05:21]i009: Command Line: '' [3B0C:3FD8][2024-08-27T02:05:21]i000: Setting string variable 'WixBundleOriginalSource' to value 'C:\Users\yauheni.pervenenka\Downloads\Bundle\Bundle.exe' [3B0C:3FD8][2024-08-27T02:05:21]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'C:\Users\yauheni.pervenenka\Downloads\Bundle\' [3B0C:3FD8][2024-08-27T02:05:21]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\YAUHEN~1.PER\AppData\Local\Temp\Bundle_20240827020521.log' [3B0C:3FD8][2024-08-27T02:05:21]i000: Setting string variable 'WixBundleInProgressName' to value '' [3B0C:3FD8][2024-08-27T02:05:21]i000: Setting string variable 'WixBundleName' to value 'Bundle' [3B0C:3FD8][2024-08-27T02:05:21]i000: Setting string variable 'WixBundleManufacturer' to value 'TODO Manufacturer' [3B0C:322C][2024-08-27T02:05:22]i000: Setting version variable 'WixBundleFileVersion' to value '5.0.1.0' [3B0C:322C][2024-08-27T02:05:22]i000: Setting numeric variable 'WixStdBALanguageId' to value 1033 [3B0C:3FD8][2024-08-27T02:05:22]i100: Detect begin, 2 packages [3B0C:3FD8][2024-08-27T02:05:22]i000: Setting string variable 'NETFRAMEWORK45' to value '378675' [3B0C:3FD8][2024-08-27T02:05:22]i052: Condition 'NETFRAMEWORK45 >= 394802' evaluates to false. [3B0C:3FD8][2024-08-27T02:05:22]i101: Detected package: NetFx462Web, state: Absent, cached: No, install registration state: (permanent), cache registration state: (permanent) [3B0C:3FD8][2024-08-27T02:05:22]i101: Detected package: Package1, state: Absent, cached: No, install registration state: Absent, cache registration state: Absent [3B0C:3FD8][2024-08-27T02:05:22]i199: Detect complete, result: 0x0, registration state: None, cached: No, eligible for cleanup: No [3B0C:322C][2024-08-27T02:05:22]i052: Condition 'WixStdBAUpdateAvailable' evaluates to false. [3B0C:322C][2024-08-27T02:05:22]i052: Condition 'NOT WixStdBASuppressOptionsUI' evaluates to true.

If CustomUI written using .net system shows dialog This application requires one of the following versions of the .NET Framework: .NETFramework, Version=v4.6.2

Actual Result

Burn does't install prerequsite packages before running CustomUI

Expected Result

Burn installs prerequsite packages before running CustomUI

Acknowledgements

bevanweiss commented 1 week ago

If you reference one of the test cases, ala: https://github.com/wixtoolset/wix/blob/1011c5609bc12ded5188dc76484fc5075d24617c/src/test/burn/TestData/PrereqBaTests/BundleD/BundleD.wxs

You'll see that you're missing the WixPrerequisiteBootstrapperApplication tag

<Chain>
    <PackageGroupRef Id="NetFx462WebAsPrereq"/>
    <MsiPackage Id="Package1" SourceFile="$(var.Package1.TargetPath)" />
</Chain>
<bal:WixPrerequisiteBootstrapperApplication />
barnson commented 1 week ago

WixStdBA never needs prereqs.

bevanweiss commented 1 week ago

WixStdBA never needs prereqs.

I assumed from the issue title that he was trying to use a CustomBA (that was using .NET Framework 4.6.2). Even though the reproduction info then does reference WixStandardBootstrapperApplication, and the logs report WixStdBA...

I think it's a pretty clear case of operator error all over the show however. Both in the initial usage (failing to use the WixPrereq..Bootstrapper if using a custom .NET BA) and in the issue report (referencing WixStdBA)..