[Bug 48286] New: .NET Framework 2.x, 3.x installers running in Windows 7 mode report 'You must use "Turn Windows features on or off" in the Control Panel to install <net framework>.'

WineHQ Bugzilla wine-bugs at winehq.org
Sat Dec 14 18:50:00 CST 2019


https://bugs.winehq.org/show_bug.cgi?id=48286

            Bug ID: 48286
           Summary: .NET Framework 2.x, 3.x installers running in Windows
                    7 mode report 'You must use "Turn Windows features on
                    or off" in the Control Panel to install <net
                    framework>.'
           Product: Wine
           Version: 5.0-rc1
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: -unknown
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
      Distribution: ---

Hello folks,

adding info for documentation purpose. I've briefly mentioned it some time ago
here: https://bugs.winehq.org/show_bug.cgi?id=34967#c5

Various .NET Framework installers refuse to install in Wine with WINEPREFIX
default WinVer setting 'Windows 7'.
Reason: Almost all .NET Framework installers contain builtin conditions
("blockers") for unsupported Windows versions.

Trace log of such attempt, .NET Framework 2.0 SP1 in clean 32-bit WINEPREFIX
(no Wine-Mono, no winetricks):

--- snip ---
$ WINEDEBUG=+seh,+relay,+msi wine
.cache/winetricks/dotnet20sp1/NetFx20SP1_x86.exe >>log.txt 2>&1
...
002e:Call KERNEL32.GetPrivateProfileStringW(3a220ea0 L"VS Custom",3a220dcc
L"AllowLaunchOnWin2k",3a21fb0c L"",0032e120,00000104,018b67f0
L"c:\\f8fad0586886391605\\Setup.sdb") ret=3a24aacc
...
002e:Ret  KERNEL32.GetPrivateProfileStringW() retval=00000001 ret=3a24aacc
...
002e:Call KERNEL32.GetVersionExW(0032e168) ret=3a27aa83
...
002e:Ret  KERNEL32.GetVersionExW() retval=00000001 ret=3a27aa83 
...
002e:Call KERNEL32.GetPrivateProfileStringW(3a220ea0 L"VS Custom",3a220f04
L"BlockFutureClientOS",3a21fb0c L"",0032e11c,00000104,018b67f0
L"c:\\f8fad0586886391605\\Setup.sdb") ret=3a24a6dc
...
002e:Ret  KERNEL32.GetPrivateProfileStringW() retval=00000001 ret=3a24a6dc 
...
002e:Call user32.MessageBoxW(00000000,018b6890 L"You must use \"Turn Windows
features on or off\" in the Control Panel to install or configure Microsoft
.NET Framework 2.0 SP1.",018b6730 L"Microsoft .NET Framework 2.0 SP1
Setup",00040010) ret=3a24a7b9 
...
--- snip ---

Installer log:

--- snip ---
...
[12/14/19,20:36:02] Setup.exe: StartUIManager()
[12/14/19,20:36:02] vs70uimgr: Entering RunScenario() method.
[12/14/19,20:36:02] vs70uimgr: CUIMgr::RunScenario(): Starting the active
scenario
[12/14/19,20:36:02] Setup.exe: GetGlobalCustomProperty - Property:
{AA62DF98-3F2C-11D3-887B-00C04F8ECDD6} - PropertyName: Maintenance Mode -
Value: 0
[12/14/19,20:36:02] Setup.exe: GetGlobalCustomProperty - Property:
{340F7930-0E41-11D3-ACE2-00C04F8EEBA1} - PropertyName: Output Unattend File -
Value: 
[12/14/19,20:36:02] VS Scenario: Validating system requirements
[12/14/19,20:36:02] Setup_Blocked: CSupportedPlatformCheck
[12/14/19,20:36:02] Setup.exe: GetGlobalCustomProperty - Property:
{092114C2-997D-4D68-8F3A-8BC2584FD23B} - PropertyName: Quiet Mode Setup -
Value: 
[12/14/19,20:36:31] Setup.exe: AddGlobalCustomProperty
[12/14/19,20:36:31] Setup.exe: AddGlobalCustomProperty
[12/14/19,20:36:31] VS Scenario: ***ERRORLOG EVENT*** : CSupportedPlatformCheck
failed : You must use "Turn Windows features on or off" in the Control Panel to
install or configure Microsoft .NET Framework 2.0 SP1.
[12/14/19,20:36:31] Setup.exe: AddGlobalCustomProperty
[12/14/19,20:36:31] VS Scenario: ***ERRORLOG EVENT*** : Failed to pass the
Warnings/Blocks checks in CVSScenario::Start()
[12/14/19,20:36:31] vs70uimgr: CUIMgr::RunScenario(): Start() returned canceled
or FAILED(hr)
[12/14/19,20:36:31] Setup.exe: SetupManager::RunPostSetupLaunch() starting
[12/14/19,20:36:31] Setup.exe: SetupManager::RunPostSetupLaunch() ending
--- snip ---

Relevant section of 'setup.sdb':

--- snip ---
...
[VS Custom]
EmptyClient=1
DeferBaselineReboots=1
EnableRollback=1
PatchCache=SYSMSICache\Framework\v3.5
InstallSourceName=dotnetfx3.exe
DownloadTempDirBaseName=dotnetfx35
JobIdSubRegKeyFormatTemplate=SOFTWARE\\Microsoft\\Net Framework
Setup\\NDP\\v3.5\\Setup
WinFXSetupRegKeyPath=SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.5\\Setup
BlockFutureClientOS=1
BlockFutureServerOS=1
DisableBrowseForComponent=1
PackageURL=fwlink/?LinkId=69165
BlockUninstallKeyName=NextVersionInstalled
DependencyFile=vs_setup.pdi
ComponentFile=baseline.dat
BitmapFile=logo.bmp
BaselineFolder=.\WCU
SupportLink=http://go.microsoft.com/fwlink/?LinkId=48390
Ver=3.5
RegKey=NetFX
ProdName=Microsoft .NET Framework 2.0 SP1
LangCode=ENU
LangID=1033
CpuType=X86
ProdFamilyType=NETFX20
EditionType=EXP
NoMaintenanceMode=1
AllowLaunchOnWin2k=1
EnableAutomaticUpgradeSupport=0
ImageType=NET
ProdID={B508B3F1-A24A-32C0-B310-85786919EF28}
VersionMajor=3
VersionMinor=5
Revision=21022.08
CustomTextPrefix=CustomText
ProductSupportURL=http://go.microsoft.com/fwlink/?LinkId=48390
--- snip ---

Technically one could unpack the outer archive and patch setup database to
'BlockFutureClientOS=0'.
But that's officially not supported and rather discouraged. Aaron Stebner
mentioned this method as well here:

https://blogs.msdn.microsoft.com/astebner/2007/01/04/why-net-framework-3-0-language-packs-will-not-install-correctly-on-windows-vista/

(hack .NET Framework 3.0 language packs to install on Windows Vista).

I've tested the following 'WinVer' ranges with Wine to be working, taking
builtin installer blockers into account:

----------------------------------------------------------------
| .NET Framework version | min. WinVer     | max. WinVer       |
----------------------------------------------------------------
| .NET Framework 2.0     | Windows 2000    | n/a (Windows 10+) |
| .NET Framework 2.0 SP1 | Windows 2000    | Windows XP/2003   |
| .NET Framework 2.0 SP2 | Windows 2000    | Windows XP/2003   |
| .NET Framework 3.0     | Windows XP/2003 | Windows XP/2003   |
| .NET Framework 3.0 SP1 | Windows XP/2003 | Windows XP/2003   |
| .NET Framework 3.5     | Windows XP/2003 | Windows Vista     |
| .NET Framework 3.5 SP1 | Windows XP/2003 | Windows Vista     |
| .NET Framework 4.x     | Windows XP/2003 | n/a (Windows 10+) |
----------------------------------------------------------------

Some sections in 'winetricks dotnet' recipes are outdated nowaways:

* unnecessary Windows 2000 setting
* unnecessary overrides to builtins (which actually have nasty side-effects,
such as bug 47484)
* unnecessary registry manipulation/fixups (.NET/NDP versions)

$ wine --version
wine-5.0-rc1

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list