diff --git a/src/NuGet.Core/NuGet.Configuration/Utility/SettingsUtility.cs b/src/NuGet.Core/NuGet.Configuration/Utility/SettingsUtility.cs index a94bc096b3e..8540dfdc4a8 100644 --- a/src/NuGet.Core/NuGet.Configuration/Utility/SettingsUtility.cs +++ b/src/NuGet.Core/NuGet.Configuration/Utility/SettingsUtility.cs @@ -55,6 +55,7 @@ public static bool DeleteValue(ISettings settings, string section, string attrib if (element != null) { settings.Remove(section, element); + settings.SaveToDisk(); return true; } diff --git a/test/NuGet.Core.Tests/NuGet.Configuration.Test/SettingsUtilityTests.cs b/test/NuGet.Core.Tests/NuGet.Configuration.Test/SettingsUtilityTests.cs index 0a053cdee45..860b08b3f04 100644 --- a/test/NuGet.Core.Tests/NuGet.Configuration.Test/SettingsUtilityTests.cs +++ b/test/NuGet.Core.Tests/NuGet.Configuration.Test/SettingsUtilityTests.cs @@ -254,6 +254,33 @@ public void DeleteConfigValue_WithNullSettings_Throws() ex.Should().BeOfType(); } + [Fact] + public void DeleteConfigValue_WithValidSettings_DeletesKey() + { + // Arrange + var keyName = "dependencyVersion"; + var nugetConfigPath = "NuGet.Config"; + var config = @" + + + + +"; + + using (var mockBaseDirectory = TestDirectory.Create()) + { + SettingsTestUtils.CreateConfigurationFile(nugetConfigPath, mockBaseDirectory, config); + var settings = new Settings(mockBaseDirectory); + + // Act + SettingsUtility.DeleteConfigValue(settings, keyName); + + // Assert + var content = File.ReadAllText(Path.Combine(mockBaseDirectory, nugetConfigPath)); + content.Should().NotContain(keyName); + } + } + [Fact] public void GetGlobalPackagesFolder_WithNullSettings_Throws() {