@@ -885,5 +885,71 @@ public void GetResolvedVersions_WithAPackageInDirectoryPackageProps_GetsVersion(
885885 var version = result . First ( ) . TopLevelPackages . First ( ) . OriginalRequestedVersion ;
886886 Assert . Equal ( "1.1.1" , version ) ;
887887 }
888+
889+ [ PlatformFact ( Platform . Windows ) ]
890+ public void AddPackageVersionIntoPropsFile_WithDevelopmentDependency_DoesNotAddPrivateAssets ( )
891+ {
892+ // Arrange
893+ using var testDirectory = TestDirectory . Create ( ) ;
894+ var projectCollection = new ProjectCollection (
895+ globalProperties : null ,
896+ remoteLoggers : null ,
897+ loggers : null ,
898+ toolsetDefinitionLocations : ToolsetDefinitionLocations . Default ,
899+ maxNodeCount : 1 ,
900+ onlyLogCriticalEvents : false ,
901+ loadProjectsReadOnly : false ) ;
902+
903+ var projectOptions = new ProjectOptions
904+ {
905+ LoadSettings = ProjectLoadSettings . DoNotEvaluateElementsWithFalseCondition ,
906+ ProjectCollection = projectCollection
907+ } ;
908+
909+ // Arrange Directory.Packages.props file
910+ var propsFile =
911+ @$ "<Project>
912+ <PropertyGroup>
913+ <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
914+ </PropertyGroup>
915+ </Project>" ;
916+ File . WriteAllText ( Path . Combine ( testDirectory , "Directory.Packages.props" ) , propsFile ) ;
917+
918+ // Arrange project file
919+ string projectContent =
920+ @$ "<Project Sdk=""Microsoft.NET.Sdk"">
921+ <PropertyGroup>
922+ <TargetFramework>net6.0</TargetFramework>
923+ </PropertyGroup>
924+ </Project>" ;
925+ File . WriteAllText ( Path . Combine ( testDirectory , "projectA.csproj" ) , projectContent ) ;
926+ var project = Project . FromFile ( Path . Combine ( testDirectory , "projectA.csproj" ) , projectOptions ) ;
927+
928+ // Add item group to Directory.Packages.props
929+ var msObject = new MSBuildAPIUtility ( logger : new TestLogger ( ) , virtualProjectBuilder : null ) ;
930+ var directoryBuildPropsRootElement = MSBuildAPIUtility . GetDirectoryBuildPropsRootElement ( project ) ;
931+ var propsItemGroup = directoryBuildPropsRootElement . AddItemGroup ( ) ;
932+
933+ // Create a library dependency that simulates a development dependency (PrivateAssets=all)
934+ var libraryDependency = new LibraryDependency
935+ {
936+ LibraryRange = new LibraryRange (
937+ name : "X" ,
938+ versionRange : VersionRange . Parse ( "1.0.0" ) ,
939+ typeConstraint : LibraryDependencyTarget . Package ) ,
940+ SuppressParent = LibraryIncludeFlags . All ,
941+ IncludeType = LibraryIncludeFlags . All & ~ ( LibraryIncludeFlags . Compile | LibraryIncludeFlags . Runtime | LibraryIncludeFlags . BuildTransitive )
942+ } ;
943+
944+ // Act
945+ msObject . AddPackageVersionIntoPropsItemGroup ( propsItemGroup , libraryDependency ) ;
946+ directoryBuildPropsRootElement . Save ( ) ;
947+
948+ // Assert - PackageVersion should only have Version, not PrivateAssets or IncludeAssets
949+ string propsContent = File . ReadAllText ( Path . Combine ( testDirectory , "Directory.Packages.props" ) ) ;
950+ Assert . Contains ( @$ "<PackageVersion Include=""X"" Version=""1.0.0"" />", propsContent ) ;
951+ Assert . DoesNotContain ( "PrivateAssets" , propsContent ) ;
952+ Assert . DoesNotContain ( "IncludeAssets" , propsContent ) ;
953+ }
888954 }
889955}
0 commit comments