|
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 | </ItemGroup>
|
160 | 162 | <WriteBuildOutputProps NuGetPackages="@(_PreviouslySourceBuiltPackages)"
|
161 | 163 | ExtraPackageInfo="@(ExtraPackageVersionPropsPackageInfo)"
|
|
170 | 172 |
|
171 | 173 | <Message Importance="High" Text="$(RepositoryName) is using versions $(PackageVersionPropsPath)" />
|
172 | 174 | <Message Importance="High" Text="%(VersionProperties.Identity)" />
|
| 175 | + |
| 176 | + <ReadNuGetPackageInfos PackagePaths="@(_PreviouslySourceBuiltPackages)"> |
| 177 | + <Output TaskParameter="PackageInfoItems" ItemName="_PreviouslySourceBuiltPackageInfos" /> |
| 178 | + </ReadNuGetPackageInfos> |
| 179 | + |
| 180 | + <GetSourceBuiltNupkgCacheConflicts SourceBuiltPackageInfos="@(_PreviouslySourceBuiltPackageInfos)" |
| 181 | + PackageCacheDir="$(PackagesDir)"> |
| 182 | + <Output TaskParameter="ConflictingPackageInfos" ItemName="ConflictingPackageInfos" /> |
| 183 | + </GetSourceBuiltNupkgCacheConflicts> |
| 184 | + </Target> |
| 185 | + |
| 186 | + <Target Name="CheckSourceBuiltNupkgConflictUsages" |
| 187 | + DependsOnTargets="GetAllProjectDirectories" |
| 188 | + AfterTargets="CreateBuildOutputProps" |
| 189 | + Condition="'@(ConflictingPackageInfos)' != ''"> |
| 190 | + <PropertyGroup> |
| 191 | + <_ReportDir>$(ConflictingPackageReportDir)before-$(RepositoryName)/</_ReportDir> |
| 192 | + <_ReportDataFile>$(_ReportDir)usage.json</_ReportDataFile> |
| 193 | + </PropertyGroup> |
| 194 | + |
| 195 | + <WritePackageUsageData NuGetPackageInfos="@(ConflictingPackageInfos)" |
| 196 | + ProjectDirectories="@(ProjectDirectories)" |
| 197 | + DataFile="$(_ReportDataFile)" /> |
| 198 | + |
| 199 | + <WriteUsageReports DataFile="$(_ReportDataFile)" |
| 200 | + OutputDirectory="$(_ReportDir)" /> |
| 201 | + |
| 202 | + <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)', ', ')" /> |
173 | 203 | </Target>
|
174 | 204 |
|
175 | 205 | <Target Name="CreateRestoreSourceProps"
|
|
318 | 348 | </ItemGroup>
|
319 | 349 | </Target>
|
320 | 350 |
|
321 |
| - <Target Name="WritePrebuiltUsageData"> |
322 |
| - <ItemGroup> |
323 |
| - <AllRepoProjects Include="$(ProjectDir)repos\*.proj" /> |
324 |
| - </ItemGroup> |
325 |
| - |
326 |
| - <Message Importance="High" Text="Finding project directories..." /> |
327 |
| - |
328 |
| - <MSBuild Projects="@(AllRepoProjects)" |
329 |
| - Targets="GetProjectDirectory"> |
330 |
| - <Output TaskParameter="TargetOutputs" ItemName="ProjectDirectories" /> |
331 |
| - </MSBuild> |
332 |
| - |
| 351 | + <Target Name="WritePrebuiltUsageData" |
| 352 | + DependsOnTargets="GetAllProjectDirectories"> |
333 | 353 | <ItemGroup>
|
334 | 354 | <PrebuiltPackages Include="$(PrebuiltPackagesPath)*.nupkg" />
|
335 | 355 | <PrebuiltPackages Include="$(TarballPrebuiltPackagesPath)*.nupkg" Condition="'$(TarballPrebuiltPackagesPath)' != ''"/>
|
|
354 | 374 | DataFile="$(PackageReportDataFile)" />
|
355 | 375 | </Target>
|
356 | 376 |
|
| 377 | + <Target Name="GetAllProjectDirectories"> |
| 378 | + <ItemGroup> |
| 379 | + <AllRepoProjects Include="$(ProjectDir)repos\*.proj" /> |
| 380 | + </ItemGroup> |
| 381 | + |
| 382 | + <Message Importance="High" Text="Finding project directories..." /> |
| 383 | + |
| 384 | + <MSBuild Projects="@(AllRepoProjects)" |
| 385 | + Targets="GetProjectDirectory"> |
| 386 | + <Output TaskParameter="TargetOutputs" ItemName="ProjectDirectories" /> |
| 387 | + </MSBuild> |
| 388 | + </Target> |
| 389 | + |
357 | 390 | <Target Name="ReportPrebuiltUsage"
|
358 | 391 | DependsOnTargets="GetPreviousReleasePrebuiltPackageInfos">
|
359 | 392 | <ItemGroup>
|
|
0 commit comments