Windows 7 already have net 3.5 which includes 3.0 and 2.0. Windows 10 has already version 4. So you need to install either 3.5 or 4 depending on which os you are using, therefore there is no pack that contains both 3.5 and 4.
I've downloaded latest 4.8 version and when I installed my printer driver it asked me to download and install version 2.0 ... this is why I've asked.
Again, Dotnet 4.8 only goes back down to 4.0! So, you need to install (or activate) the Dotnet 3.5 package/feature. 3.5 includes 2.0.
Nice, thanks a lot abbodi1406! Learned recently about SFX too, I do this in winrar but seems this module has lots more options. Could you please point me to the app you used and, if there is, how to use it? (I think I have seen it but seemed over complicated for me) I just set this command "script.bat" "%sfxname%" %sfxpar% to pass my arguments to the batch ps: If anyone intested, I just made a small "shortcut script" to create (admin) shortcuts with the switches (only /y /ai /aiu for now) Code: @echo off set "ShortcutScriptPath=%TEMP%\Set_Shortcut.ps1" set "WorkDir=%~dp0" set "WorkDir=%WorkDir:~0,-1%" @echo param ^( [string]$SourceExe, [string]$ArgumentsToSourceExe, [string]$Destination, [string]$WorkDirectory, [string]$Description, [string]$Icon ^) > "%ShortcutScriptPath%" @echo $WshShell = New-Object -comObject WScript.Shell >> "%ShortcutScriptPath%" @echo $Shortcut = $WshShell.CreateShortcut^($Destination^) >> "%ShortcutScriptPath%" @echo $Shortcut.TargetPath = $SourceExe >> "%ShortcutScriptPath%" @echo $Shortcut.Arguments = $ArgumentsToSourceExe >> "%ShortcutScriptPath%" @echo $Shortcut.WorkingDirectory = $WorkDirectory >> "%ShortcutScriptPath%" @echo $Shortcut.Description = $Description >> "%ShortcutScriptPath%" @echo $Shortcut.IconLocation = $Icon >> "%ShortcutScriptPath%" @echo $Shortcut.Save^(^) >> "%ShortcutScriptPath%" @echo $bytes = [System.IO.File]::ReadAllBytes^("$Destination"^) >> "%ShortcutScriptPath%" @echo $bytes[0x15] = $bytes[0x15] -bor 0x20 #set byte 21 ^(0x15^) bit 6 ^(0x20^) ON >> "%ShortcutScriptPath%" @echo [System.IO.File]::WriteAllBytes^("$Destination", $bytes^) >> "%ShortcutScriptPath%" PowerShell -NoProfile -ExecutionPolicy Bypass -file "%ShortcutScriptPath%" "%~dp0VisualCppRedist_AIO_x86_x64.exe" /y "%~dp0Install - Passive.lnk" "%WorkDir%" "Install - Passive" "%~dp0VisualCppRedist_AIO_x86_x64.exe" PowerShell -NoProfile -ExecutionPolicy Bypass -file "%ShortcutScriptPath%" "%~dp0VisualCppRedist_AIO_x86_x64.exe" /ai "%~dp0Install - Quiet Mode.lnk" "%WorkDir%" "Install - Quiet Mode" "%~dp0VisualCppRedist_AIO_x86_x64.exe" PowerShell -NoProfile -ExecutionPolicy Bypass -file "%ShortcutScriptPath%" "%~dp0VisualCppRedist_AIO_x86_x64.exe" /aiu "%~dp0Uninstall all.lnk" "%WorkDir%" "Uninstall all" "%~dp0VisualCppRedist_AIO_x86_x64.exe" del %ShortcutScriptPath% /f /s /q >NUL 2>&1 exit /b
Thanks! This solved a lot of software installation problems. I still wonder why Microsoft doesn't use Windows Update for this kind of redistributables.
It's Microsoft bug besides, the script depends on the original names to check the non-compliant versions (which are mostly original old vc++ 2010 installers) and there are many registry keys that added with original name, changing them could break detection for WU or other programs