Ensure Duplicate items aren't present during publish
authorKarthik Rajasekaran <karajas@microsoft.com>
Thu, 25 May 2017 22:46:30 +0000 (15:46 -0700)
committerKarthik Rajasekaran <karajas@microsoft.com>
Thu, 25 May 2017 22:46:30 +0000 (15:46 -0700)
Commit migrated from https://github.com/dotnet/core-setup/commit/249e6652c7c869e4c5f0ab7f03238664f7d94587

src/installer/publish/dir.props
src/installer/publish/publish.proj

index cc777ea..95245d2 100644 (file)
     <RidAgnosticPackageFile Include="$(PackagesOutDir)**/*.nupkg" Exclude="@(RuntimePackageFile)" >
       <RelativeBlobPath>$(BinariesRelativePath)</RelativeBlobPath>
     </RidAgnosticPackageFile>
-    <InstallerFile Include="$(PackagesOutDir)**/*$(InstallerExtension)" >
+    <InstallerFile Include="$(PackagesOutDir)**/*$(InstallerExtension)" Condition="'$(InstallerExtension)' != ''" >
       <RelativeBlobPath>$(InstallersRelativePath)</RelativeBlobPath>
     </InstallerFile>
-    <InstallerFile Include="$(PackagesOutDir)**/*$(CombinedInstallerExtension)" >
+    <InstallerFile Include="$(PackagesOutDir)**/*$(CombinedInstallerExtension)" Condition="'$(CombinedInstallerExtension)' != ''" >
       <RelativeBlobPath>$(InstallersRelativePath)</RelativeBlobPath>
     </InstallerFile>
   </ItemGroup>
index 268920b..31aed2b 100644 (file)
              Properties="%(Project.AdditionalProperties)"
              BuildInParallel="true" />
   </Target>
+  
+  <Target Name="EnsureUniqueItemsToUpload">
+    <ItemGroup>
+      <DedupItems Include="@(ItemsToPublish->Distinct())" />
+    </ItemGroup>
+    <PropertyGroup>
+      <CountOld>@(ItemsToPublish->Count())</CountOld>
+      <CountNew>@(DedupItems->Count())</CountNew>
+      <_HasDups Condition="'$(CountOld)' != '$(CountNew)'">true</_HasDups>
+    </PropertyGroup>
+    <Message Importance="High" Condition="'$(_HasDups)' != ''" Text="ItemsToPublish: '@(ItemsToPublish)'"/>
+    <Error Condition="'$(_HasDups)' != ''" Text="Duplicate Items Present in ItemsToPublish" />
+  </Target>
 
   <Target Name="UploadToAzure"
+          DependsOnTargets="EnsureUniqueItemsToUpload"
           Condition="'$(ItemsToPublish)' != ''">
     <Error Condition="'$(AzureAccessToken)' == ''" Text="Missing required property 'AzureAccessToken'" />
     <Error Condition="'$(AzureAccountName)' == ''" Text="Missing required property 'AzureAccountName'" />