Search code examples
visual-studiovisual-studio-extensionsvsix

how to get Tools/Options settings value


I'm try to get some options settings value like Nuget Package Manager\Package Source

enter image description here

I tried ShellSettingsManager, it return a GUID value:

var manager = new ShellSettingsManager(ServiceProvider.GlobalProvider);
var store = manager.GetReadOnlySettingsStore(Microsoft.VisualStudio.Settings.SettingsScope.Configuration);
var package = store.GetString(@"\ToolsOptionsPages\NuGet Package Manager\Package Sources\", "Package"); // get a GUID

Solution

  • I find the nuget api can be use.

    https://learn.microsoft.com/zh-cn/nuget/visual-studio-extensibility/nuget-api-in-visual-studio#ivspackagesourceprovider-interface

    var componentModel = (IComponentModel)await GetServiceAsync(typeof(SComponentModel));
    var sourceProvider = componentModel.GetService<IVsPackageSourceProvider>();
    var sources = sourceProvider.GetSources(true, true);