protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                _generalOptions?.Dispose();
                _parallelizationOptions?.Dispose();
                _googleTestOptions?.Dispose();

                try
                {
                    _debuggerAttacherServiceHost?.Close();
                }
                catch (CommunicationException)
                {
                    _debuggerAttacherServiceHost?.Abort();
                }
            }
            base.Dispose(disposing);
        }
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                _generalOptions?.Dispose();
                _parallelizationOptions?.Dispose();
                _googleTestOptions?.Dispose();

                try
                {
                    // Cannot simply do ".?" because Code Analysis does not understand that.
                    if (_debuggerAttacherServiceHost != null)
                    {
                        _debuggerAttacherServiceHost.Close();
                    }
                }
                catch (CommunicationException)
                {
                    _debuggerAttacherServiceHost.Abort();
                }
            }
            base.Dispose(disposing);
        }