@@ -501,8 +501,14 @@ public void It_fails_if_nobuild_was_requested_but_build_was_invoked()
501501 . HaveStdOutContaining ( "NETSDK1085" ) ;
502502 }
503503
504- [ Fact ]
505- public void It_contains_no_duplicates_in_resolved_publish_assets ( )
504+ [ WindowsOnlyFact ]
505+ public void It_contains_no_duplicates_in_resolved_publish_assets_on_windows ( )
506+ => It_contains_no_duplicates_in_resolved_publish_assets ( "windows" ) ;
507+
508+ [ Theory ]
509+ [ InlineData ( "console" ) ]
510+ [ InlineData ( "web" ) ]
511+ public void It_contains_no_duplicates_in_resolved_publish_assets ( string type )
506512 {
507513 // Use a specific RID to guarantee a consistent set of assets
508514 var testProject = new TestProject ( )
@@ -514,9 +520,25 @@ public void It_contains_no_duplicates_in_resolved_publish_assets()
514520 IsExe = true
515521 } ;
516522
523+ switch ( type )
524+ {
525+ case "windows" :
526+ testProject . ProjectSdk = "Microsoft.NET.Sdk.WindowsDesktop" ;
527+ testProject . AdditionalProperties . Add ( "UseWpf" , "true" ) ;
528+ testProject . AdditionalProperties . Add ( "UseWindowsForms" , "true" ) ;
529+ break ;
530+ case "console" :
531+ break ;
532+ case "web" :
533+ testProject . ProjectSdk = "Microsoft.NET.Sdk.Web" ;
534+ break ;
535+ default :
536+ throw new ArgumentOutOfRangeException ( nameof ( type ) ) ;
537+ }
538+
517539 testProject . PackageReferences . Add ( new TestPackageReference ( "NewtonSoft.Json" , "9.0.1" ) ) ;
518540
519- var testAsset = _testAssetsManager . CreateTestProject ( testProject , testProject . Name )
541+ var testAsset = _testAssetsManager . CreateTestProject ( testProject , testProject . Name , identifier : type )
520542 . WithProjectChanges ( project =>
521543 {
522544 project . Root . Add ( XElement . Parse ( @"
@@ -526,12 +548,12 @@ public void It_contains_no_duplicates_in_resolved_publish_assets()
526548 </RemoveDuplicates>
527549 <Message Condition=""'@(_ResolvedCopyLocalPublishAssets)' != '@(FilteredAssets)'"" Importance=""High"" Text=""Duplicate items are present in: @(_ResolvedCopyLocalPublishAssets)!"" />
528550 <ItemGroup>
529- <AssetFilenames Include=""@(_ResolvedCopyLocalPublishAssets->'%(Filename)%(Extension )')"" />
551+ <AssetDestinationSubPaths Include=""@(_ResolvedCopyLocalPublishAssets->'%(DestinationSubPath )')"" />
530552 </ItemGroup>
531- <RemoveDuplicates Inputs=""@(AssetFilenames )"">
532- <Output TaskParameter=""Filtered"" ItemName=""FilteredAssetFilenames ""/>
553+ <RemoveDuplicates Inputs=""@(AssetDestinationSubPaths )"">
554+ <Output TaskParameter=""Filtered"" ItemName=""FilteredAssetDestinationSubPaths ""/>
533555 </RemoveDuplicates>
534- <Message Condition=""'@(AssetFilenames )' != '@(FilteredAssetFilenames )'"" Importance=""High"" Text=""Duplicate filenames are present in: @(_ResolvedCopyLocalPublishAssets )!"" />
556+ <Message Condition=""'@(AssetDestinationSubPaths )' != '@(FilteredAssetDestinationSubPaths )'"" Importance=""High"" Text=""Duplicate DestinationSubPaths are present in: @(AssetDestinationSubPaths )!"" />
535557</Target>" ) ) ;
536558 } )
537559 . Restore ( Log , testProject . Name ) ;
0 commit comments