|
7 | 7 | </ItemGroup>
|
8 | 8 |
|
9 | 9 | <UsingTask AssemblyFile="$(TasksBinDir)Microsoft.DotNet.SourceBuild.Tasks.dll" TaskName="AddSourceToNuGetConfig" />
|
| 10 | + <UsingTask AssemblyFile="$(TasksBinDir)Microsoft.DotNet.SourceBuild.Tasks.dll" TaskName="GetSourceBuiltNupkgCacheConflicts" /> |
10 | 11 | <UsingTask AssemblyFile="$(TasksBinDir)Microsoft.DotNet.SourceBuild.Tasks.dll" TaskName="ReadNuGetPackageInfos" />
|
11 | 12 | <UsingTask AssemblyFile="$(TasksBinDir)Microsoft.DotNet.SourceBuild.Tasks.dll" TaskName="RemoveInternetSourcesFromNuGetConfig" />
|
12 | 13 | <UsingTask AssemblyFile="$(TasksBinDir)Microsoft.DotNet.SourceBuild.Tasks.dll" TaskName="UpdateJson" />
|
|
155 | 156 | <Target Name="CreateBuildOutputProps"
|
156 | 157 | BeforeTargets="Build">
|
157 | 158 | <ItemGroup>
|
158 |
| - <_PreviouslySourceBuiltPackages Include="$(SourceBuiltPackagesPath)*.nupkg" /> |
| 159 | + <_PreviouslySourceBuiltPackages Include="$(SourceBuiltPackagesPath)*.nupkg" |
| 160 | + Exclude="$(SourceBuiltPackagesPath)*.symbols.nupkg" /> |
159 | 161 | <_AdditionalAssetDirs Include="$(SourceBuiltToolsetDir)" Condition="Exists('$(SourceBuiltToolsetDir)')" />
|
160 | 162 | </ItemGroup>
|
161 | 163 | <WriteBuildOutputProps NuGetPackages="@(_PreviouslySourceBuiltPackages)"
|
|
172 | 174 |
|
173 | 175 | <Message Importance="High" Text="$(RepositoryName) is using versions $(PackageVersionPropsPath)" />
|
174 | 176 | <Message Importance="High" Text="%(VersionProperties.Identity)" />
|
| 177 | + |
| 178 | + <ReadNuGetPackageInfos PackagePaths="@(_PreviouslySourceBuiltPackages)"> |
| 179 | + <Output TaskParameter="PackageInfoItems" ItemName="_PreviouslySourceBuiltPackageInfos" /> |
| 180 | + </ReadNuGetPackageInfos> |
| 181 | + |
| 182 | + <GetSourceBuiltNupkgCacheConflicts SourceBuiltPackageInfos="@(_PreviouslySourceBuiltPackageInfos)" |
| 183 | + PackageCacheDir="$(PackagesDir)"> |
| 184 | + <Output TaskParameter="ConflictingPackageInfos" ItemName="ConflictingPackageInfos" /> |
| 185 | + </GetSourceBuiltNupkgCacheConflicts> |
| 186 | + </Target> |
| 187 | + |
| 188 | + <Target Name="CheckSourceBuiltNupkgConflictUsages" |
| 189 | + DependsOnTargets="GetAllProjectDirectories" |
| 190 | + AfterTargets="CreateBuildOutputProps" |
| 191 | + Condition="'@(ConflictingPackageInfos)' != ''"> |
| 192 | + <PropertyGroup> |
| 193 | + <_ReportDir>$(ConflictingPackageReportDir)before-$(RepositoryName)/</_ReportDir> |
| 194 | + <_ReportDataFile>$(_ReportDir)usage.json</_ReportDataFile> |
| 195 | + </PropertyGroup> |
| 196 | + |
| 197 | + <WritePackageUsageData NuGetPackageInfos="@(ConflictingPackageInfos)" |
| 198 | + ProjectDirectories="@(ProjectDirectories)" |
| 199 | + DataFile="$(_ReportDataFile)" /> |
| 200 | + |
| 201 | + <WriteUsageReports DataFile="$(_ReportDataFile)" |
| 202 | + OutputDirectory="$(_ReportDir)" /> |
| 203 | + |
| 204 | + <Warning Text="Detected package id/version(s) in the cache that were source-built, but contents don't match. They were probably downloaded. See $(_ReportDir) for usage details. @(ConflictingPackageInfos->'%(PackageId) %(PackageVersion)', ', ')" /> |
175 | 205 | </Target>
|
176 | 206 |
|
177 | 207 | <Target Name="CreateRestoreSourceProps"
|
|
320 | 350 | </ItemGroup>
|
321 | 351 | </Target>
|
322 | 352 |
|
323 |
| - <Target Name="WritePrebuiltUsageData"> |
324 |
| - <ItemGroup> |
325 |
| - <AllRepoProjects Include="$(ProjectDir)repos\*.proj" /> |
326 |
| - </ItemGroup> |
327 |
| - |
328 |
| - <Message Importance="High" Text="Finding project directories..." /> |
329 |
| - |
330 |
| - <MSBuild Projects="@(AllRepoProjects)" |
331 |
| - Targets="GetProjectDirectory"> |
332 |
| - <Output TaskParameter="TargetOutputs" ItemName="ProjectDirectories" /> |
333 |
| - </MSBuild> |
334 |
| - |
| 353 | + <Target Name="WritePrebuiltUsageData" |
| 354 | + DependsOnTargets="GetAllProjectDirectories"> |
335 | 355 | <ItemGroup>
|
336 | 356 | <PrebuiltPackages Include="$(PrebuiltPackagesPath)*.nupkg" />
|
337 | 357 | <PrebuiltPackages Include="$(TarballPrebuiltPackagesPath)*.nupkg" Condition="'$(TarballPrebuiltPackagesPath)' != ''"/>
|
|
356 | 376 | DataFile="$(PackageReportDataFile)" />
|
357 | 377 | </Target>
|
358 | 378 |
|
| 379 | + <Target Name="GetAllProjectDirectories"> |
| 380 | + <ItemGroup> |
| 381 | + <AllRepoProjects Include="$(ProjectDir)repos\*.proj" /> |
| 382 | + </ItemGroup> |
| 383 | + |
| 384 | + <Message Importance="High" Text="Finding project directories..." /> |
| 385 | + |
| 386 | + <MSBuild Projects="@(AllRepoProjects)" |
| 387 | + Targets="GetProjectDirectory"> |
| 388 | + <Output TaskParameter="TargetOutputs" ItemName="ProjectDirectories" /> |
| 389 | + </MSBuild> |
| 390 | + </Target> |
| 391 | + |
359 | 392 | <Target Name="ReportPrebuiltUsage"
|
360 | 393 | DependsOnTargets="GetPreviousReleasePrebuiltPackageInfos">
|
361 | 394 | <ItemGroup>
|
|
0 commit comments