I have the same issue, but in my case the solution is not working. I had an Enterprise 2016 instance and trying an upgrade to 2019. I had SSMS 18.4 installed on the server. When my upgrade failed with the mentioned error (An error occurred for a dependency of the feature), i followed your instructions and uninstalled SQL Server 2012 Native Client, followed by a restart on the machine. Tried again from command prompt to run setup /action=repair /instancename=MSSQLSERVER and got another error:
Overall summary:
Final result: Failed: see details below
Exit code (Decimal): -2146232828
Exit facility code: 19
Exit error code: 5636
Exit message: Exception has been thrown by the target of an invocation.
Start time: 2020-02-27 11:18:27
End time: 2020-02-27 11:19:36
Requested action: Repair
Exception help link: https://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&Evtsrc=setup.rll&EvtID=50000&ProdVer=15.0.2000.5&EvtType=0x55494D32%400x11428655&EvtType=0x55494D32%400x11428655
The entire message is:
Configuration file: C:\Program Files\Microsoft SQL Server\150\Setup Bootstrap\Log\20200227_111827\ConfigurationFile.ini
Rules with failures or warnings:
Rules report file: C:\Program Files\Microsoft SQL Server\150\Setup Bootstrap\Log\20200227_111827\SystemConfigurationCheck_Report.htm
Exception summary:
The following is an exception stack listing the exceptions in outermost to innermost order
Inner exceptions are being indented
Exception type: System.Reflection.TargetInvocationException
Message:
Exception has been thrown by the target of an invocation.
HResult : 0x80131604
Data:
HelpLink.EvtType = 0x55494D32@0x11428655
DisableWatson = true
Stack:
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.SqlServer.Configuration.SetupExtension.ObjectDatastoreIntegration.SetInputSettingInputPropertiesOnObject(Object pendingObject, TextWriter loggingStream)
at Microsoft.SqlServer.Configuration.SetupExtension.ActionDatastoreIntegration.SetPropertiesOnRunningAction(ActionKey key, TextWriter loggingStream)
at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionMetadata.NotifyInExecution(ActionKey actionRunning, TextWriter loggingStream)
at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(ActionWorker workerDelegate)
Inner exception type: System.ArgumentNullException
Message:
Value cannot be null.
Parameter name: InstallMediaPath
HResult : 0x80004003
Stack:
at Microsoft.SqlServer.Configuration.MsiExtension.InitializeMsiExtension.set_InstallMediaPath(String value)
Still struggling with this error..