Skip to content

Commit

Permalink
Fix project restore when CentralPackageVersionOverrideEnabled=false (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
kant2002 committed Mar 22, 2023
1 parent f99e9b8 commit 3066287
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -470,12 +470,17 @@ private async Task<bool> AreCentralVersionRequirementsSatisfiedAsync(RestoreRequ
if (restoreRequest.Project.RestoreMetadata.CentralPackageVersionOverrideDisabled)
{
// Emit a error if VersionOverride was specified for a package reference but that functionality is disabled
bool hasVersionOverrides = false;
foreach (var item in dependenciesWithVersionOverride)
{
await _logger.LogAsync(RestoreLogMessage.CreateError(NuGetLogCode.NU1013, string.Format(CultureInfo.CurrentCulture, Strings.Error_CentralPackageVersions_VersionOverrideDisabled, item.Name)));
hasVersionOverrides = true;
}

return false;
if (hasVersionOverrides)
{
return false;
}
}

if (!restoreRequest.PackageSourceMapping.IsEnabled && httpSourcesCount > 1)
Expand Down
19 changes: 12 additions & 7 deletions test/NuGet.Core.Tests/NuGet.Commands.Test/RestoreCommandTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2696,9 +2696,11 @@ public async Task RestoreCommand_CentralVersion_AssetsFile_PrivateAssetsFlowsToP
/// </summary>
/// <returns></returns>
[Theory]
[InlineData(true)]
[InlineData(false)]
public async Task RestoreCommand_CentralVersion_ErrorWhenVersionOverrideUsedButIsDisabled(bool isCentralPackageVersionOverrideDisabled)
[InlineData(true, true)]
[InlineData(true, false)]
[InlineData(false, true)]
[InlineData(false, false)]
public async Task RestoreCommand_CentralVersion_ErrorWhenVersionOverrideUsedButIsDisabled(bool isCentralPackageVersionOverrideDisabled, bool isVersionOverrideUsed)
{
const string projectName = "TestProject";

Expand All @@ -2712,18 +2714,21 @@ public async Task RestoreCommand_CentralVersion_ErrorWhenVersionOverrideUsedButI

await SimpleTestPackageUtility.CreateFolderFeedV3Async(pathContext.PackageSource, PackageSaveMode.Defaultv3, new SimpleTestPackageContext(packageName, "1.0.0"), new SimpleTestPackageContext(packageName, "2.0.0"));

var packageRefDependecyFoo = new LibraryDependency()
var packageRefDependencyFoo = new LibraryDependency()
{
LibraryRange = new LibraryRange(packageName, versionRange: null, typeConstraint: LibraryDependencyTarget.Package),
VersionOverride = new VersionRange(NuGetVersion.Parse("2.0.0"))
};
if (isVersionOverrideUsed)
{
packageRefDependencyFoo.VersionOverride = new VersionRange(NuGetVersion.Parse("2.0.0"));
}

var packageVersion = new CentralPackageVersion(packageName, VersionRange.Parse("1.0.0"));

TargetFrameworkInformation targetFrameworkInformation = CreateTargetFrameworkInformation(
new List<LibraryDependency>
{
packageRefDependecyFoo
packageRefDependencyFoo
},
new List<CentralPackageVersion>
{
Expand Down Expand Up @@ -2753,7 +2758,7 @@ public async Task RestoreCommand_CentralVersion_ErrorWhenVersionOverrideUsedButI

// Assert

if (isCentralPackageVersionOverrideDisabled)
if (isCentralPackageVersionOverrideDisabled && isVersionOverrideUsed)
{
Assert.False(result.Success);

Expand Down

0 comments on commit 3066287

Please sign in to comment.