public NuGetViewModel([Import(AllowDefault = true)] IExceptionManager?exceptionManager, IApplicationSettings appSettings) { try { var settings = LoadSettings(); ConfigPath = settings.GetConfigFilePaths().First(); GlobalPackageFolder = SettingsUtility.GetGlobalPackagesFolder(settings); DefaultCredentialServiceUtility.SetupDefaultCredentialService(NullLogger.Instance, nonInteractive: false); var sourceProvider = new PackageSourceProvider(settings); _sourceRepositoryProvider = new CommandLineSourceRepositoryProvider(sourceProvider); } catch (Exception e) { _initializationException = ExceptionDispatchInfo.Capture(e); ConfigPath = string.Empty; GlobalPackageFolder = string.Empty; } Settings LoadSettings() { Settings?settings = null; const int retries = 3; for (var i = 1; i <= retries; i++) { try { settings = new Settings(appSettings.GetDefaultDocumentPath(), "RoslynPad.nuget.config"); } catch (NuGetConfigurationException ex) { if (i == retries) { exceptionManager?.ReportError(ex); throw; } } } return(settings !); } }