diff --git a/src/CentralPackageVersions.UnitTests/CentralPackageVersionsTests.cs b/src/CentralPackageVersions.UnitTests/CentralPackageVersionsTests.cs index e18798b7..885d4900 100644 --- a/src/CentralPackageVersions.UnitTests/CentralPackageVersionsTests.cs +++ b/src/CentralPackageVersions.UnitTests/CentralPackageVersionsTests.cs @@ -236,6 +236,37 @@ public void IsDisabledForProjectsWithPackagesConfigOrDoNotSupportPackageReferenc enableCentralPackageVersions.ShouldBe("false"); } + [Fact] + public void LogErrorIfImportedInDirectoryBuildProps() + { + ProjectCreator.Create() + .Import(Path.Combine(ThisAssemblyDirectory, @"Sdk\Sdk.props")) + .Import(Path.Combine(ThisAssemblyDirectory, @"Sdk\Sdk.targets")) + .Save(GetTempFile("Directory.Build.props")); + + ProjectCreator.Create() + .Save(GetTempFile("Directory.Build.targets")); + + ProjectCreator.Templates + .PackagesProps( + path: GetTempFile("Packages.props"), + packageReferences: new Dictionary + { + ["Foo"] = "1.2.3", + }) + .Save(); + + ProjectCreator.Templates + .SdkCsproj(projectCreator: creator => creator + .ItemPackageReference("Foo")) + .Save(GetTempFile("Test.csproj")) + .TryBuild("CheckPackageReferences", out bool result, out BuildOutput buildOutput); + + result.ShouldBeFalse(buildOutput.GetConsoleLog()); + + buildOutput.Errors.ShouldBe(new[] { "Microsoft.Build.CentralPackageVersions was not imported in Directory.Build.targets. See https://github.com/microsoft/MSBuildSdks/tree/main/src/CentralPackageVersions for more information on how to include this SDK." }, buildOutput.GetConsoleLog()); + } + [Theory] [InlineData(".csproj")] [InlineData(".fsproj")] diff --git a/src/CentralPackageVersions/Sdk/Sdk.props b/src/CentralPackageVersions/Sdk/Sdk.props index d3e4c500..33c584a1 100644 --- a/src/CentralPackageVersions/Sdk/Sdk.props +++ b/src/CentralPackageVersions/Sdk/Sdk.props @@ -12,7 +12,5 @@ true - - \ No newline at end of file diff --git a/src/CentralPackageVersions/Sdk/Sdk.targets b/src/CentralPackageVersions/Sdk/Sdk.targets index c493a74e..7b5e3133 100644 --- a/src/CentralPackageVersions/Sdk/Sdk.targets +++ b/src/CentralPackageVersions/Sdk/Sdk.targets @@ -13,6 +13,10 @@ Condition=" '$(EnableCentralPackageVersions)' != 'false' And '$(CustomBeforeCentralPackageVersionsTargets)' != '' And Exists('$(CustomBeforeCentralPackageVersionsTargets)') " /> + + <_WasMicrosoftCentralPackageVersionsSdkImportedInDirectoryBuildTargets Condition="'$(_WasMicrosoftCentralPackageVersionsSdkImportedInDirectoryBuildTargets)' == '' And '$(DirectoryBuildTargetsPath)' == ''">false @@ -151,7 +155,13 @@ <_DuplicateGlobalPackageReference Include="@(_OriginalPackageReference)" Condition=" '@(GlobalPackageReference)' == '@(_OriginalPackageReference)' and '%(Identity)' != '' " /> - + + +