2024-01-06 00:43:24 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								<Project>
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.targets, $(MSBuildThisFileDirectory)..))" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-20 01:10:25 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <PropertyGroup Condition="'$(UseInnerClone)' == 'true'">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <BuildArgs>$(BuildArgs) /p:UseInnerClone=true</BuildArgs>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <BuildArgs>$(BuildArgs) /p:CopySrcInsteadOfClone=true</BuildArgs>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <BuildArgs>$(BuildArgs) /p:CopyWipIntoInnerSourceBuildRepo=true</BuildArgs>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  </PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <BuildCommand Condition="'$(BuildCommand)' == '' and '$(IsUtilityProject)' != 'true'">$(BuildScript) $(BuildActions) $(BuildArgs)</BuildCommand>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- The default PackageVersionPropsFlowType behavior (DependenciesOnly) triggers logic that looks for a
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         Version.Details.xml file. Setting the type to AllPackages will skip that logic. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <PackageVersionPropsFlowType Condition="'$(IsUtilityProject)' == 'true'">AllPackages</PackageVersionPropsFlowType>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- MinimalConsoleLogOutput determines if the repository build should be logged to a separate file or directly to the console. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepoConsoleLogFile>$(ArtifactsLogDir)$(RepositoryName).log</RepoConsoleLogFile>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <MinimalConsoleLogOutput Condition="'$(MinimalConsoleLogOutput)' == '' and '$(ContinuousIntegrationBuild)' == 'true'">true</MinimalConsoleLogOutput>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <PackageReportDataFile>$(PackageReportDir)prebuilt-usage.xml</PackageReportDataFile>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ProjectAssetsJsonArchiveFile>$(PackageReportDir)all-project-assets-json-files.zip</ProjectAssetsJsonArchiveFile>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ProdConManifestFile>$(PackageReportDir)prodcon-build.xml</ProdConManifestFile>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-16 19:40:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <RepoManifestFile>$([MSBuild]::NormalizePath('$(ProjectDirectory)', 'artifacts', 'RepoManifest.xml'))</RepoManifestFile>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  </PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-24 23:39:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <!-- Exclude repositories that currently don't build when not building source-only. -->
							 
						 
					
						
							
								
									
										
										
										
											2024-01-26 11:27:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <ItemGroup Condition="'$(DotNetBuildSourceOnly)' != 'true'">
							 
						 
					
						
							
								
									
										
										
										
											2024-01-24 23:39:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <RepositoryReference Remove="roslyn" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="wpf" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="msbuild" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="roslyn-analyzers" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="aspnetcore" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="razor" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="deployment-tools" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="format" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="nuget-client" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="templating" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="test-templates" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="fsharp" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="vstest" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="sdk" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="aspire" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RepositoryReference Remove="installer" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  <UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="AddSourceToNuGetConfig" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="ReadNuGetPackageInfos" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="RemoveInternetSourcesFromNuGetConfig" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="UpdateJson" />
							 
						 
					
						
							
								
									
										
										
										
											2022-05-13 14:52:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="UpdateNuGetConfigPackageSourcesMappings" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  <UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="ValidateUsageAgainstBaseline" />
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 09:45:40 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="WritePackageVersionsProps" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  <UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="WritePackageUsageData" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="WriteUsageReports" />
							 
						 
					
						
							
								
									
										
										
										
											2023-11-17 07:26:10 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <!-- Update NuGet feeds in the repo -->
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  <Target Name="UpdateNuGetConfig"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          BeforeTargets="Build"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Condition="'$(NuGetConfigFile)' != '' or '@(NuGetConfigFiles)' != ''"
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								          Inputs="$(MSBuildProjectFullPath)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Outputs="$(BaseIntermediateOutputPath)UpdateNuGetConfig.complete">
							 
						 
					
						
							
								
									
										
										
										
											2022-05-13 14:52:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <SourceBuiltNuGetSourceName>source-built</SourceBuiltNuGetSourceName>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <ExtraSourcesNuGetSourceName>ExtraSources</ExtraSourcesNuGetSourceName>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <SourceBuildSources>$(SourceBuiltNuGetSourceName)</SourceBuildSources>
							 
						 
					
						
							
								
									
										
										
										
											2022-05-13 14:52:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <SourceBuildSources Condition="'$(ExtraRestoreSourcePath)' != ''">$(SourceBuildSources);$(ExtraSourcesNuGetSourceName)</SourceBuildSources>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </PropertyGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2024-01-26 11:27:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <PropertyGroup Condition="'$(DotNetBuildSourceOnly)' == 'true'">
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <PrebuiltNuGetSourceName>prebuilt</PrebuiltNuGetSourceName>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <PreviouslySourceBuiltNuGetSourceName>previously-source-built</PreviouslySourceBuiltNuGetSourceName>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <ReferencePackagesNuGetSourceName>reference-packages</ReferencePackagesNuGetSourceName>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <SourceBuildSources>$(SourceBuildSources);$(PrebuiltNuGetSourceName);$(PreviouslySourceBuiltNuGetSourceName);$(ReferencePackagesNuGetSourceName)</SourceBuildSources>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </PropertyGroup>
							 
						 
					
						
							
								
									
										
										
										
											2022-05-13 14:52:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <!-- Update the detected or manually specified NuGetConfigFile, but also allow multiple. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <NuGetConfigFiles Include="$(NuGetConfigFile)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-07-09 16:42:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <RemoveInternetSourcesFromNuGetConfig
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								      NuGetConfigFile="%(NuGetConfigFiles.Identity)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-26 00:19:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      BuildWithOnlineSources="$(DotNetBuildWithOnlineSources)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      KeepFeedPrefixes="@(KeepFeedPrefixes)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-26 11:27:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
							 
						 
					
						
							
								
									
										
										
										
											2022-05-13 14:52:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            SourceName="$(PrebuiltNuGetSourceName)"
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								                            SourcePath="$(PrebuiltPackagesPath)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-26 11:27:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
							 
						 
					
						
							
								
									
										
										
										
											2022-05-13 14:52:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            SourceName="$(PreviouslySourceBuiltNuGetSourceName)"
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								                            SourcePath="$(PrebuiltSourceBuiltPackagesPath)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-26 11:27:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
							 
						 
					
						
							
								
									
										
										
										
											2022-05-13 14:52:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            SourceName="$(ReferencePackagesNuGetSourceName)"
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								                            SourcePath="$(ReferencePackagesDir)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-26 11:27:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
							 
						 
					
						
							
								
									
										
										
										
											2022-05-13 14:52:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            SourceName="$(SourceBuiltNuGetSourceName)"
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								                            SourcePath="$(SourceBuiltPackagesPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
							 
						 
					
						
							
								
									
										
										
										
											2022-05-13 14:52:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            SourceName="$(ExtraSourcesNuGetSourceName)"
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								                            SourcePath="$(ExtraRestoreSourcePath)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                            Condition="'$(ExtraRestoreSourcePath)' != ''" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-13 14:52:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <UpdateNuGetConfigPackageSourcesMappings
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      NuGetConfigFile="%(NuGetConfigFiles.Identity)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-26 00:19:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      BuildWithOnlineSources="$(DotNetBuildWithOnlineSources)"
							 
						 
					
						
							
								
									
										
										
										
											2022-05-13 14:52:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      SourceBuildSources="$(SourceBuildSources)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <MakeDir Directories="$(BaseIntermediateOutputPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Touch Files="$(BaseIntermediateOutputPath)UpdateNuGetConfig.complete" AlwaysCreate="true">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </Touch>
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <!-- Update the SDK version in the repo's global.json file.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       This guarantees that all repositories build with the VMR's SDK version. -->
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  <Target Name="UpdateGlobalJsonVersions"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          BeforeTargets="Build"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Condition="'$(GlobalJsonFile)' != ''"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Inputs="$(MSBuildProjectFullPath);$(MSBuildThisFileFullPath)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Outputs="$(BaseIntermediateOutputPath)UpdateGlobalJsonVersions.complete">
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <_PossibleCliVersionJsonPath Include="sdk:version" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_PossibleCliVersionJsonPath Include="tools:dotnet" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <UpdateJson JsonFilePath="$(GlobalJsonFile)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                PathToAttribute="%(_PossibleCliVersionJsonPath.Identity)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                NewAttributeValue="$(NETCoreSdkVersion)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                SkipUpdateIfMissingKey="true" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- VB PoC, remove the global runtimes until https://github.com/dotnet/arcade/issues/14283 is resolved. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <UpdateJson JsonFilePath="$(GlobalJsonFile)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                PathToAttribute="tools:runtimes"
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								                SkipUpdateIfMissingKey="true" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <MakeDir Directories="$(BaseIntermediateOutputPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Touch Files="$(BaseIntermediateOutputPath)UpdateGlobalJsonVersions.complete" AlwaysCreate="true">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </Touch>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <!-- TODO: Remove when all repos use a consistent set of eng/common files: https://github.com/dotnet/source-build/issues/3710. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="UpdateEngCommonFiles"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-26 11:27:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Condition="'$(UpdateEngCommonFiles)' == 'true' or '$(DotNetBuildSourceOnly)' != 'true'"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          BeforeTargets="Build">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-16 15:29:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <OrchestratorEngCommonFile Include="$(RepositoryEngineeringDir)common\**\*" />
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-16 15:29:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Copy SourceFiles="@(OrchestratorEngCommonFile)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          DestinationFolder="$(ProjectDirectory)eng\common\%(RecursiveDir)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          SkipUnchangedFiles="true" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 09:45:40 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <!-- Before a repository builds, set up the version property files that override the repo's defaults.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       There are 3 files generated -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="CreateBuildInputProps"
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								          BeforeTargets="Build"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Inputs="$(MSBuildProjectFullPath)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Outputs="$(BaseIntermediateOutputPath)CreateBuildInputProps.complete">
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 09:45:40 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <_CurrentSourceBuiltPackages Include="$(SourceBuiltPackagesPath)*.nupkg"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   Exclude="$(SourceBuiltPackagesPath)*.symbols.nupkg" />
							 
						 
					
						
							
								
									
										
										
										
											2024-01-08 15:22:15 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <_PreviouslyBuiltSourceBuiltPackages Include="$(PrebuiltSourceBuiltPackagesPath)*.nupkg" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 09:45:40 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Error Condition="'$(PackageVersionPropsFlowType)' != 'AllPackages' and '$(PackageVersionPropsFlowType)' != 'DependenciesOnly'"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Text="Invalid PackageVersionPropsFlowType '$(PackageVersionPropsFlowType)'. Must be 'AllPackages' or 'DependenciesOnly'." />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_VersionDetailsXml Condition="'$(PackageVersionPropsFlowType)' == 'DependenciesOnly'">$(ProjectDirectory)/eng/Version.Details.xml</_VersionDetailsXml>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- Write the build input properties, then save off a copy that will be used for generating usage reports later -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <WritePackageVersionsProps NuGetPackages="@(_CurrentSourceBuiltPackages)"
							 
						 
					
						
							
								
									
										
										
										
											2023-02-07 08:03:21 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                               ExtraProperties="@(ExtraPackageVersionPropsPackageInfo)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               VersionPropsFlowType="$(PackageVersionPropsFlowType)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               VersionDetails="$(_VersionDetailsXml)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               OutputPath="$(CurrentSourceBuiltPackageVersionPropsPath)" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 09:45:40 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <!-- Create previously source-built inputs info -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <WritePackageVersionsProps NuGetPackages="@(_PreviouslyBuiltSourceBuiltPackages)"
							 
						 
					
						
							
								
									
										
										
										
											2023-02-07 08:03:21 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                               VersionPropsFlowType="$(PackageVersionPropsFlowType)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               VersionDetails="$(_VersionDetailsXml)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               OutputPath="$(PreviouslySourceBuiltPackageVersionPropsPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- Write a full package version props (unfiltered) that will be used to track which repo creates a package.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         Because not all repos implement the repo API (e.g. some are external), it's difficult to consistently gather
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         a list of packages from the output of each repo. This may be an area for improvement later.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         Instead, we rely on the package version props file that is built up
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         before each build. If the full list of packages grows by package A, B and C between repo Y and Z, then Y produced
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         A B and C.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         A key element of this algorith is that we must write the full package version props and not the filtered version. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <WritePackageVersionsProps NuGetPackages="@(_CurrentSourceBuiltPackages)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               VersionPropsFlowType="AllPackages"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                               OutputPath="$(SnapshotPackageVersionPropsPath)" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 09:45:40 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <!-- Write a single file that contains imports for both the current and previously built packages -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <PackageVersionsPropsContents>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        <![CDATA[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								<Project>
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 09:45:40 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <Import Project="$(PreviouslySourceBuiltPackageVersionPropsPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Import Project="$(CurrentSourceBuiltPackageVersionPropsPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								</Project>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								]]>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      </PackageVersionsPropsContents>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <WriteLinesToFile File="$(PackageVersionPropsPath)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      Lines="$(PackageVersionsPropsContents)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      Overwrite="true" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Message Importance="High" Text="$(RepositoryName) using package version properties saved at $(CurrentSourceBuiltPackageVersionPropsPath) and $(PreviouslySourceBuiltPackageVersionPropsPath)" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <MakeDir Directories="$(BaseIntermediateOutputPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Touch Files="$(BaseIntermediateOutputPath)CreateBuildInputProps.complete" AlwaysCreate="true">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </Touch>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <!-- SkipRepoReferences is a developer innerloop switch to skip building dependencies. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="BuildRepoReferences"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Condition="'@(RepositoryReference)' != '' and '$(SkipRepoReferences)' != 'true'">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Message Importance="High" Text="Building dependencies [@(RepositoryReference)] needed by '$(RepositoryName)'." />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_DependentProject Include="@(RepositoryReference -> '%(Identity).proj')" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <MSBuild Projects="@(_DependentProject)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             Targets="Build"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             BuildInParallel="$(BuildInParallel)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             StopOnFirstFailure="true" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="Build"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          DependsOnTargets="BuildRepoReferences"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Inputs="$(MSBuildProjectFullPath)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Outputs="$(BaseIntermediateOutputPath)Build.complete">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Exec Command="$(DotnetTool) build-server shutdown" />
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 07:34:07 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Building $(RepositoryName)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Message Importance="High" Text="Running command:" Condition="'$(BuildCommand)' != ''" />
							 
						 
					
						
							
								
									
										
										
										
											2023-02-16 12:40:45 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Message Importance="High" Text="  $(BuildCommand)" Condition="'$(BuildCommand)' != ''" />
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Message Importance="High" Text="  Log: $(RepoConsoleLogFile)" Condition="'$(BuildCommand)' != '' and '$(MinimalConsoleLogOutput)' == 'true'" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Message Importance="High" Text="  With Environment Variables:" Condition="'$(BuildCommand)' != ''" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Message Importance="High" Text="    %(EnvironmentVariables.Identity)" Condition="'$(BuildCommand)' != ''" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <CallTarget Targets="RepoBuild" />
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Building $(RepositoryName)...done" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <MakeDir Directories="$(BaseIntermediateOutputPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Touch Files="$(BaseIntermediateOutputPath)Build.complete" AlwaysCreate="true">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </Touch>
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <OnError ExecuteTargets="ReportRepoError" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <Target Name="RepoBuild"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Condition="'$(BuildCommand)' != ''">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Message Text="DirSize Before Building $(RepositoryName)" Importance="High"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             Condition=" '$(CleanWhileBuilding)' == 'true' and '$(BuildOS)' != 'windows'" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Exec Command="df -h $(RepoRoot)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Condition=" '$(CleanWhileBuilding)' == 'true' and '$(BuildOS)' != 'windows'" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <PropertyGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <FullCommand>$(BuildCommand)</FullCommand>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <FullCommand Condition="'$(LogVerbosityOptOut)' != 'true'">$(FullCommand) /v:$(LogVerbosity)</FullCommand>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <FullCommand Condition="'$(MinimalConsoleLogOutput)' == 'true'">$(FullCommand) >> $(RepoConsoleLogFile) 2>&1</FullCommand>
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </PropertyGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <MakeDir Directories="$([System.IO.Path]::GetDirectoryName('$(RepoConsoleLogFile)'));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          $(SourceBuiltPackagesPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- Create directories for extra debugging. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <MakeDir Directories="$(MSBuildDebugPathTargetDir);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          $(RoslynDebugPathTargetDir);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                          $(AspNetRazorBuildServerLogDir)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             Condition="'$(EnableExtraDebugging)' == 'true'" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <Exec Command="$(FullCommand)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          WorkingDirectory="$(ProjectDirectory)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          EnvironmentVariables="@(EnvironmentVariables)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          IgnoreStandardErrorWarningFormat="true" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="ReportRepoError">
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Message Importance="High" Text="$([System.IO.File]::ReadAllText('$(RepoConsoleLogFile)'))" Condition="Exists('$(RepoConsoleLogFile)') and '$(MinimalConsoleLogOutput)' == 'true'" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <Message Importance="High" Text="'$(RepositoryName)' failed during build." />
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Message Importance="High" Text="See '$(RepoConsoleLogFile)' for more information." Condition="Exists('$(RepoConsoleLogFile)') and '$(MinimalConsoleLogOutput)' == 'true'" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <Target Name="Package" AfterTargets="Build" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="GatherBuiltPackages">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <!-- Filter out packages for WriteVersions -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_BuiltPackages Condition="'$(PackagesOutput)' != ''" Include="$(PackagesOutput)/*.nupkg" Exclude="$(PackagesOutput)/*.symbols.nupkg"/>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_BuiltPackages Condition="'@(PackagesOutputList)' != ''" Include="%(PackagesOutputList.Identity)/*.nupkg" Exclude="%(PackagesOutputList.Identity)/*.symbols.nupkg"/>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-16 19:40:26 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <!--
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Condition should be removed after source-build picks up version of Arcade that has
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    source-build infra changes for removal od inner-clone in VMR build. Until then some
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    repos will produce intermediate packages instead of repo manifest file.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    https://github.com/dotnet/source-build/issues/3930
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="CopyRepoArtifacts"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          AfterTargets="Package"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Condition="Exists($(RepoManifestFile))"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Inputs="$(RepoManifestFile)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Outputs="$(BaseIntermediateOutputPath)ArtifactsCopy.complete">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <XmlPeek XmlInputPath="$(RepoManifestFile)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             Query="Build/Artifact/@Path">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        <Output TaskParameter="Result" ItemName="RepoManifestArtifact" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </XmlPeek>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <RepoManifestAsset Include="@(RepoManifestArtifact)" Condition="'%(Extension)' != '.nupkg'"/>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <RepoManifestPackage Include="@(RepoManifestArtifact)" Condition="'%(Extension)' == '.nupkg'"/>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <RepoManifestNonShippingPackage Include="@(RepoManifestPackage)" Condition="$([System.String]::Copy('%(Identity)').Contains('$([System.IO.Path]::DirectorySeparatorChar)NonShipping$([System.IO.Path]::DirectorySeparatorChar)'))"/>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_NupkgsDestination>$(SourceBuiltPackagesPath)</_NupkgsDestination>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_NupkgsDestination Condition="'$(RepositoryName)' == 'source-build-reference-packages'">$(ReferencePackagesDir)</_NupkgsDestination>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- Building SBRP: At this point the References directory contains the previously-source-built SBRPs,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         clear it before copying the current SBRPs.  This ensures n-1 SBRPs aren't required to build the product repos. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RemoveDir
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Condition="'$(RepositoryName)' == 'source-build-reference-packages'"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Directories="$(ReferencePackagesDir)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- Copy nupkgs -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Copy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Condition="'@(RepoManifestPackage)' != ''"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      SourceFiles="@(RepoManifestPackage)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      DestinationFolder="$(_NupkgsDestination)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- Copy assets -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Copy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Condition="'@(RepoManifestAsset)' != ''"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      SourceFiles="@(RepoManifestAsset)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      DestinationFolder="$(SourceBuiltAssetsDir)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- Generate non-shipping package list -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <NonShippingPackagesList Condition="'@(RepoManifestNonShippingPackage)' != ''">$(PackageListsDir)$(NonShippingPackagesListPrefix)$(RepositoryName).lst</NonShippingPackagesList>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <WriteLinesToFile
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Condition="'$(NonShippingPackagesList)' != ''"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      File="$(NonShippingPackagesList)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Lines="@(RepoManifestNonShippingPackage->'%(Filename)%(Extension)')"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Overwrite="true" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <MakeDir Directories="$(BaseIntermediateOutputPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Touch Files="$(BaseIntermediateOutputPath)ArtifactsCopy.complete" AlwaysCreate="true">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </Touch>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <!--
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    This target can be removed after source-build picks up version of Arcade that has
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    source-build infra changes for removal od inner-clone in VMR build. Until then the target
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    is needed for building source-build-reference-packages and arcade repos.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    https://github.com/dotnet/source-build/issues/3930
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -->
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  <Target Name="ExtractIntermediatePackages"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          AfterTargets="Package"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Inputs="$(MSBuildProjectFullPath)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Outputs="$(BaseIntermediateOutputPath)IntermediateExtraction.complete">
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_BuiltIntermediatePackages Condition="'$(PackagesOutput)' != ''" Include="$(PackagesOutput)/Microsoft.SourceBuild.Intermediate.*.nupkg" Exclude="$(PackagesOutput)/*.symbols.nupkg"/>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_BuiltIntermediatePackages Condition="'@(PackagesOutputList)' != ''" Include="%(PackagesOutputList.Identity)/Microsoft.SourceBuild.Intermediate.*.nupkg" Exclude="%(PackagesOutputList.Identity)/*.symbols.nupkg"/>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2021-07-27 10:27:40 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <PropertyGroup Condition="'@(_BuiltIntermediatePackages)' != ''">
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <_NupkgDestinationPath>$(SourceBuiltPackagesPath)</_NupkgDestinationPath>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <!-- SBRP packages unpack into the Reference packages directory instead of into blob-feed packages -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_NupkgDestinationPath Condition="$([System.String]::Copy(%(_BuiltIntermediatePackages.Identity)).Contains('source-build-reference-packages'))">$(ReferencePackagesDir)</_NupkgDestinationPath>
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-03 15:39:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Unzip SourceFiles="@(_BuiltIntermediatePackages)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           DestinationFolder="$(SourceBuiltPackagesPath)extractArtifacts/%(_BuiltIntermediatePackages.FileName)/"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           SkipUnchangedFiles="true"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           Condition="'@(_BuiltIntermediatePackages)' != ''" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-07-09 17:43:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <ItemGroup Condition="'@(_BuiltIntermediatePackages)' != ''">
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 17:05:58 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <SourceBuiltNupkgFiles Include="$(SourceBuiltPackagesPath)extractArtifacts/**/artifacts/*.nupkg" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-25 18:59:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <ItemGroup Condition="'@(_BuiltIntermediatePackages)' != ''">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <NonShippingPackageLists Include="$(SourceBuiltPackagesPath)extractArtifacts/**/$(NonShippingPackagesListPrefix)*" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- Copy lists of NonShipping packages to prebuilt-report dir -->
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Copy SourceFiles="@(NonShippingPackageLists)" DestinationFolder="$(PackageListsDir)" />
							 
						 
					
						
							
								
									
										
										
										
											2023-01-25 18:59:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-28 09:40:55 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <!-- Building SBRP: At this point the References directory contains the previously-source-built SBRPs,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         clear it before moving the current SBRPs.  This ensures n-1 SBRPs aren't required to build the product repos. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RemoveDir
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Condition="'$(_NupkgDestinationPath)' == '$(ReferencePackagesDir)'"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Directories="$(ReferencePackagesDir)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-24 15:01:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Move
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								      Condition="'@(SourceBuiltNupkgFiles)' != ''"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      SourceFiles="@(SourceBuiltNupkgFiles)"
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 17:05:58 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      DestinationFiles="@(SourceBuiltNupkgFiles -> '$(_NupkgDestinationPath)%(Filename)%(Extension)')" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup Condition="'@(_BuiltIntermediatePackages)' != ''">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <SourceBuiltAssetFiles Include="$(SourceBuiltPackagesPath)extractArtifacts/**/artifacts/*.*" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <SourceBuiltAssetFiles Remove="$(SourceBuiltPackagesPath)extractArtifacts/**/artifacts/*.nupkg" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-24 15:01:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Move
							 
						 
					
						
							
								
									
										
										
										
											2021-08-23 17:05:58 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      Condition="'@(SourceBuiltAssetFiles)' != ''"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      SourceFiles="@(SourceBuiltAssetFiles)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      DestinationFiles="@(SourceBuiltAssetFiles -> '$(SourceBuiltAssetsDir)%(Filename)%(Extension)')" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RemoveDir
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Condition="Exists('$(SourceBuiltPackagesPath)extractArtifacts/')"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Directories="$(SourceBuiltPackagesPath)extractArtifacts/" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <MakeDir Directories="$(BaseIntermediateOutputPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Touch Files="$(BaseIntermediateOutputPath)IntermediateExtraction.complete" AlwaysCreate="true">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </Touch>
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-07-27 10:27:40 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <!-- Copy restored packages from inner build to ensure they're included in the
							 
						 
					
						
							
								
									
										
										
										
											2021-06-30 21:17:54 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								       main build prebuilt check -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="CopyInnerBuildRestoredPackages"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          AfterTargets="Package">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2023-12-15 12:47:35 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <_InnerPackageCacheFiles Include="$(ProjectDirectory)artifacts/sb/package-cache/**/*" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-30 21:17:54 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Copy SourceFiles="@(_InnerPackageCacheFiles)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 23:13:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          DestinationFiles="$(NuGetPackageRoot)%(RecursiveDir)%(Filename)%(Extension)"
							 
						 
					
						
							
								
									
										
										
										
											2021-06-30 21:17:54 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Condition=" '@(_InnerPackageCacheFiles)' != '' " />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  <Target Name="CopyPackage"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          AfterTargets="Package"
							 
						 
					
						
							
								
									
										
										
										
											2023-02-16 12:40:45 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Condition="'$(PackagesOutput)' != '' OR '@(PackagesOutputList)' != ''"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          DependsOnTargets="GatherBuiltPackages">
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <Copy SourceFiles="@(_BuiltPackages)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          DestinationFolder="$(SourceBuiltPackagesPath)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Condition="'@(_BuiltPackages)'!=''"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          SkipUnchangedFiles="true" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="RemoveBuiltPackagesFromCache"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          AfterTargets="Package"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Condition="'@(_BuiltPackages)'!=''"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          DependsOnTargets="GatherBuiltPackages"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Inputs="$(MSBuildProjectFullPath)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Outputs="$(BaseIntermediateOutputPath)RemoveBuiltPackagesFromCache.complete">
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <!-- Excluding Arcade here will keep it in the cache, because that's where we're running from.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           Subsequent projects will get Arcade from eng/source-built-sdks. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <PackagePaths Include="@(_BuiltPackages)" Exclude="$(PackagesOutput)/Microsoft.DotNet.Arcade.Sdk.*.nupkg" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ReadNuGetPackageInfos PackagePaths="@(PackagePaths)">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="PackageInfoItems" ItemName="_BuiltPackageInfos" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ReadNuGetPackageInfos>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- Copy built nupkgs from nuget packages cache directory to the previouslyRestored directory
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         and then delete all expanded files and the nupkg from the package cache so the next time
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         the package is used, it will reload the source-built version -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 23:13:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <_FilesToCopy Include="$(NuGetPackageRoot)$([System.String]::copy('%(_BuiltPackageInfos.PackageId)').ToLowerInvariant())/%(_BuiltPackageInfos.PackageVersion)/**/*.nupkg" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_FilesToDelete Include="$(NuGetPackageRoot)$([System.String]::copy('%(_BuiltPackageInfos.PackageId)').ToLowerInvariant())/%(_BuiltPackageInfos.PackageVersion)/**/*.*" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <Copy SourceFiles="@(_FilesToCopy)" DestinationFolder="$(PreviouslyRestoredPackagesPath)$(RepositoryName)/" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Delete Files="@(_FilesToDelete)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <MakeDir Directories="$(BaseIntermediateOutputPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Touch Files="$(BaseIntermediateOutputPath)RemoveBuiltPackagesFromCache.complete" AlwaysCreate="true">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </Touch>
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  <Target Name="CleanupRepo"
							 
						 
					
						
							
								
									
										
										
										
											2021-08-06 09:12:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          AfterTargets="RemoveBuiltPackagesFromCache"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Condition="'$(CleanWhileBuilding)' == 'true' and Exists('$(ProjectDirectory)artifacts')">
							 
						 
					
						
							
								
									
										
										
										
											2021-08-06 09:12:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <PropertyGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <BuildLogsDir>$([MSBuild]::NormalizeDirectory('$(ProjectDirectory)', 'artifacts', 'buildLogs'))</BuildLogsDir>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <BuildObjDir>$([MSBuild]::NormalizeDirectory('$(ProjectDirectory)', 'artifacts', 'buildObj'))</BuildObjDir>
							 
						 
					
						
							
								
									
										
										
										
											2021-08-06 09:12:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    </PropertyGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-06 09:12:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <LogFilesToCopy Include="$(ProjectDirectory)artifacts/**/*.log" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <LogFilesToCopy Include="$(ProjectDirectory)artifacts/**/*.binlog" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <ObjFilesToCopy Include="$(ProjectDirectory)artifacts/**/project.assets.json" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <!-- Make a copy of the build logs & project.assets.json files -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Copy SourceFiles="@(LogFilesToCopy)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          DestinationFolder="$(BuildLogsDir)%(RecursiveDir)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          SkipUnchangedFiles="true"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Condition="'@(LogFilesToCopy)' != ''" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Copy SourceFiles="@(ObjFilesToCopy)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          DestinationFolder="$(BuildObjDir)%(RecursiveDir)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          SkipUnchangedFiles="true"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Condition="'@(ObjFilesToCopy)' != ''" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-06 09:12:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <DirsToDelete Include="$([System.IO.Directory]::GetDirectories('$(ProjectDirectory)artifacts'))" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <DirsToDeleteWithTrailingSeparator Include="$([MSBuild]::EnsureTrailingSlash('%(DirsToDelete.Identity)'))" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <DirsToDeleteWithTrailingSeparator Remove="$(BuildLogsDir)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <DirsToDeleteWithTrailingSeparator Remove="$(BuildObjDir)" />
							 
						 
					
						
							
								
									
										
										
										
											2021-08-06 09:12:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Message Text="DirSize After Building $(RepositoryName)" Importance="High" Condition="'$(BuildOS)' != 'windows' and '@(DirsToDeleteWithTrailingSeparator)' != ''" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Exec Command="df -h $(RepoRoot)" Condition="'$(BuildOS)' != 'windows' and '@(DirsToDeleteWithTrailingSeparator)' != ''" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <!-- Cleanup everything else -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <RemoveDir Directories="@(DirsToDeleteWithTrailingSeparator)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Message Text="DirSize After CleanupRepo $(RepositoryName)" Importance="High" Condition="'$(BuildOS)' != 'windows'and '@(DirsToDeleteWithTrailingSeparator)' != ''" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Exec Command="df -h $(RepoRoot)" Condition="'$(BuildOS)' != 'windows'and '@(DirsToDeleteWithTrailingSeparator)' != ''" />
							 
						 
					
						
							
								
									
										
										
										
											2021-08-06 09:12:04 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  <Target Name="ExtractToolPackage"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          DependsOnTargets="GatherBuiltPackages"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          AfterTargets="Build"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Condition="'@(BuiltSdkPackageOverride)' != ''"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Inputs="$(MSBuildProjectFullPath)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Outputs="$(BaseIntermediateOutputPath)ExtractToolPackage.complete">
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_ToolPackage
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Condition="'%(BuiltSdkPackageOverride.Version)' == ''"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Include="$(SourceBuiltPackagesPath)%(BuiltSdkPackageOverride.Identity)*.nupkg"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Exclude="$(SourceBuiltPackagesPath)%(BuiltSdkPackageOverride.Identity)*.symbols.nupkg"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Id="%(BuiltSdkPackageOverride.Identity)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_ToolPackage
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Condition="'%(BuiltSdkPackageOverride.Version)' != ''"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Include="$(SourceBuiltPackagesPath)%(BuiltSdkPackageOverride.Identity).%(BuiltSdkPackageOverride.Version).nupkg"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Exclude="$(SourceBuiltPackagesPath)%(BuiltSdkPackageOverride.Identity).%(BuiltSdkPackageOverride.Version).symbols.nupkg"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Id="%(BuiltSdkPackageOverride.Identity)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-03 15:39:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Unzip SourceFiles="%(_ToolPackage.Identity)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           DestinationFolder="$(SourceBuiltSdksDir)%(_ToolPackage.Id)\"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           SkipUnchangedFiles="true" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2022-12-14 10:59:05 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <ExtractedToolFiles Include="$(SourceBuiltSdksDir)%(_ToolPackage.Id)/**/*netcore*/*.dll" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-12-14 10:59:05 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Copy SourceFiles="@(ExtractedToolFiles)" DestinationFolder="$(SourceBuiltSdksDir)/" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-03 15:39:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <!-- When unpacking, this executable file has the wrong permissions on
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								         non-windows systems: https://github.com/NuGet/Home/issues/13121. -->
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <Exec Command="chmod 755 git-clone-to-dir.sh"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      Condition=" '%(_ToolPackage.Id)' == 'Microsoft.DotNet.Arcade.Sdk' and !$([MSBuild]::IsOSPlatform(Windows))"
							 
						 
					
						
							
								
									
										
										
										
											2022-12-14 10:59:05 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      WorkingDirectory="$(SourceBuiltSdksDir)%(_ToolPackage.Id)/tools/SourceBuild/" />
							 
						 
					
						
							
								
									
										
										
										
											2021-07-27 10:27:40 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <MakeDir Directories="$(BaseIntermediateOutputPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Touch Files="$(BaseIntermediateOutputPath)ExtractToolPackage.complete" AlwaysCreate="true">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </Touch>
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="EnsurePackagesCreated"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          AfterTargets="CopyPackage"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Condition="'$(SkipEnsurePackagesCreated)' != 'true' and '$(IsUtilityProject)' != 'true'"
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								          Inputs="$(MSBuildProjectFullPath)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Outputs="$(BaseIntermediateOutputPath)EnsurePackagesCreated.complete">
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <JustSourceBuiltPackages
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Include="$(SourceBuiltPackagesPath)*.nupkg"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Exclude="
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $(SourceBuiltPackagesPath)*.symbols.nupkg;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          @(PreviouslySourceBuiltPackages)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_PackagesNotCreatedReason Include="^ There may have been a silent failure in the submodule build. To confirm, check the build log file for undetected errors that may have prevented package creation: $(RepoConsoleLogFile)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <_PackagesNotCreatedReason Include="^ This error might be a false positive if $(RepositoryName) intentionally builds no nuget packages. If so, set the SkipEnsurePackagesCreated property to true in $(MSBuildProjectFullPath)" />
							 
						 
					
						
							
								
									
										
										
										
											2023-01-17 09:45:40 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <_PackagesNotCreatedReason Include="^ The 'bin' directory might be dirty from a previous build and the package files already existed. If so, perform a clean build, or check which packages were already in 'bin' by opening $(CurrentSourceBuiltPackageVersionPropsPath)" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								      <_PackagesNotCreatedReason Include="^ The packages may have been written to an unexpected directory. For example, some repos used bin/ and changed to artifacts/ to match Arcade. Check PackagesOutput in $(MSBuildProjectFullPath) (currently '$(PackagesOutput)')" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Error Condition="'@(JustSourceBuiltPackages)' == ''"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								           Text="$(RepositoryName) produced no new source-built package identities. Known possible causes:%0A@(_PackagesNotCreatedReason, '%0A')" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ReadNuGetPackageInfos PackagePaths="@(JustSourceBuiltPackages)">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="PackageInfoItems" ItemName="_JustSourceBuiltPackageInfos" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </ReadNuGetPackageInfos>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Message Importance="High" Text="New NuGet package(s) after building $(RepositoryName):" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Message Importance="High" Text="  -> %(_JustSourceBuiltPackageInfos.PackageId) %(_JustSourceBuiltPackageInfos.PackageVersion)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <MakeDir Directories="$(BaseIntermediateOutputPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Touch Files="$(BaseIntermediateOutputPath)EnsurePackagesCreated.complete" AlwaysCreate="true">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </Touch>
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="SetSourceBuiltSdkOverrides"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          BeforeTargets="Build"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Condition="'@(SourceBuiltSdkOverride)' != ''">
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <EnvironmentVariables Include="SOURCE_BUILT_SDK_ID_%(SourceBuiltSdkOverride.Group)=%(SourceBuiltSdkOverride.Identity)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <EnvironmentVariables Include="SOURCE_BUILT_SDK_VERSION_%(SourceBuiltSdkOverride.Group)=%(SourceBuiltSdkOverride.Version)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <EnvironmentVariables Condition="'%(SourceBuiltSdkOverride.Location)' != ''" Include="SOURCE_BUILT_SDK_DIR_%(SourceBuiltSdkOverride.Group)=%(SourceBuiltSdkOverride.Location)/" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <EnvironmentVariables Condition="'%(SourceBuiltSdkOverride.Location)' == ''" Include="SOURCE_BUILT_SDK_DIR_%(SourceBuiltSdkOverride.Group)=$(SourceBuiltSdksDir)%(SourceBuiltSdkOverride.Identity)/" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="WritePrebuiltUsageData"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          DependsOnTargets="GetAllProjectDirectories"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Inputs="$(MSBuildProjectFullPath)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Outputs="$(BaseIntermediateOutputPath)WritePrebuiltUsageData.complete">
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <!-- Save the PVP snapshot of each build step to be evaluated while building the report. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-16 15:29:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <PackageVersionPropsSnapshotFiles Include="$(SharedIntermediateOutputPath)PackageVersions.*.Snapshot.props" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Copy SourceFiles="@(PackageVersionPropsSnapshotFiles)" DestinationFolder="$(PackageReportDir)snapshots/" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 23:13:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <AllRestoredPackageFiles Include="$(NuGetPackageRoot)**/*.nupkg" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-01-10 08:50:31 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <!-- Only contains packages when building. -->
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								      <TarballPrebuiltPackageFiles Include="$(PrebuiltPackagesPath)*.nupkg" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <SourceBuiltPackageFiles Include="$(SourceBuiltBlobFeedDir)**/*.nupkg" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <SourceBuiltPackageFiles Include="$(PrebuiltSourceBuiltPackagesPath)*.nupkg" />
							 
						 
					
						
							
								
									
										
										
										
											2021-07-09 16:42:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <ReferencePackageFiles Include="$(ReferencePackagesDir)**/*.nupkg" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <!-- Check all RIDs from all restored Microsoft.NETCore.Platforms packages. -->
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 23:13:20 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <PlatformsRuntimeJsonFiles Include="$(NuGetPackageRoot)microsoft.netcore.platforms/*/PortableRuntimeIdentifierGraph.json" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <!-- Add some other potential top-level project directories for a more specific report. -->
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <ProjectDirectories Include="$(SourceBuiltSdksDir);$(TasksDir);$(ArtifactsObjDir)" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								      <!-- Finally, scan entire source-build, in case project.assets.json ends up in an unexpected place. -->
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <ProjectDirectories Include="$(RepoRoot)" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <!-- This file is a resource tracked by Git, not generated by restore. Ignore false positive. -->
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <IgnoredProjectAssetsJsonFiles Include="$(SrcDir)*nuget-client*/**/test/NuGet.Core.Tests/NuGet.Build.Tasks.Pack.Test/compiler/resources/project.assets.json"/>
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <WritePackageUsageData
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      RestoredPackageFiles="@(AllRestoredPackageFiles)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      TarballPrebuiltPackageFiles="@(TarballPrebuiltPackageFiles)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      SourceBuiltPackageFiles="@(SourceBuiltPackageFiles)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ReferencePackageFiles="@(ReferencePackageFiles)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      PlatformsRuntimeJsonFiles="@(PlatformsRuntimeJsonFiles)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      TargetRid="$(TargetRid)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ProjectDirectories="@(ProjectDirectories)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      RootDir="$(RepoRoot)"
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								      IgnoredProjectAssetsJsonFiles="@(IgnoredProjectAssetsJsonFiles)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      DataFile="$(PackageReportDataFile)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ProjectAssetsJsonArchiveFile="$(ProjectAssetsJsonArchiveFile)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-17 13:59:33 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <!-- Copy packages detected as prebuilts to the artifacts prebuilt folder -->
							 
						 
					
						
							
								
									
										
										
										
											2021-07-27 10:27:40 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2023-08-17 13:59:33 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <AllowedPackageFiles Include="@(TarballPrebuiltPackageFile)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <AllowedPackageFiles Include="@(SourceBuiltPackageFiles)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <AllowedPackageFiles Include="@(ReferencePackageFiles)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <AllowedPackageFiles>
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        <LCFilename>$([System.String]::Copy(%(Filename)).ToLowerInvariant())</LCFilename>
							 
						 
					
						
							
								
									
										
										
										
											2023-08-17 13:59:33 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      </AllowedPackageFiles>
							 
						 
					
						
							
								
									
										
										
										
											2021-07-27 10:27:40 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-17 13:59:33 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <PrebuiltPackageFiles Include="@(AllRestoredPackageFiles)" >
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        <LCFilename>$([System.String]::Copy(%(Filename)).ToLowerInvariant())</LCFilename>
							 
						 
					
						
							
								
									
										
										
										
											2023-08-17 13:59:33 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      </PrebuiltPackageFiles>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <PrebuiltPackageFiles Remove="@(AllowedPackageFiles)" MatchOnMetadata="LCFilename" />
							 
						 
					
						
							
								
									
										
										
										
											2021-07-27 10:27:40 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2023-08-17 13:59:33 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <Copy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      SourceFiles="@(PrebuiltPackageFiles)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      DestinationFolder="$(ResultingPrebuiltPackagesDir)" />
							 
						 
					
						
							
								
									
										
										
										
											2021-07-27 10:27:40 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <MakeDir Directories="$(BaseIntermediateOutputPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Touch Files="$(BaseIntermediateOutputPath)WritePrebuiltUsageData.complete" AlwaysCreate="true">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </Touch>
							 
						 
					
						
							
								
									
										
										
										
											2021-07-08 20:09:54 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="GetAllProjectDirectories">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2022-12-14 10:59:05 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <AllRepoProjects Include="$(RepoProjectsDir)*.proj" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Message Importance="High" Text="Finding project directories..." />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <MSBuild Projects="@(AllRepoProjects)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								             Targets="GetProjectDirectory">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="TargetOutputs" ItemName="ProjectDirectories" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </MSBuild>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="ReportPrebuiltUsage"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Inputs="$(MSBuildProjectFullPath)"
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Outputs="$(BaseIntermediateOutputPath)ReportPrebuiltUsage.complete">
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    <PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <FailOnPrebuiltBaselineError Condition="'$(FailOnPrebuiltBaselineError)' == ''">false</FailOnPrebuiltBaselineError>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ItemGroup>
							 
						 
					
						
							
								
									
										
										
										
											2023-02-07 08:03:21 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      <PackageVersionPropsSavedSnapshotFiles Include="$(PackageReportDir)snapshots/PackageVersions.*.Snapshot.props" />
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    </ItemGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <WriteUsageReports DataFile="$(PackageReportDataFile)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       PackageVersionPropsSnapshots="@(PackageVersionPropsSavedSnapshotFiles)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       ProdConBuildManifestFile="$(ProdConManifestFile)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       PoisonedReportFile="$(PoisonedReportFile)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                       OutputDirectory="$(PackageReportDir)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <PropertyGroup Condition="'$(ContinueOnPrebuiltBaselineError)' == ''">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <ContinueOnPrebuiltBaselineError>false</ContinueOnPrebuiltBaselineError>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <ContinueOnPrebuiltBaselineError Condition="'$(FailOnPrebuiltBaselineError)' != 'true'">true</ContinueOnPrebuiltBaselineError>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </PropertyGroup>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <ValidateUsageAgainstBaseline
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      DataFile="$(PackageReportDataFile)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      BaselineDataFile="$(BaselineDataFile)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      OutputBaselineFile="$(PackageReportDir)generated-new-baseline.xml"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      OutputReportFile="$(PackageReportDir)baseline-comparison.xml"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      AllowTestProjectUsage="$(AllowTestProjectUsage)"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ContinueOnError="$(ContinueOnPrebuiltBaselineError)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-11 20:10:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    <MakeDir Directories="$(BaseIntermediateOutputPath)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    <Touch Files="$(BaseIntermediateOutputPath)ReportPrebuiltUsage.complete" AlwaysCreate="true">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      <Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    </Touch>
							 
						 
					
						
							
								
									
										
										
										
											2021-06-24 16:36:04 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  </Target>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="GetProjectDirectory" Outputs="$(ProjectDirectory)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <Target Name="GetRepositoryReferences" Outputs="@(RepositoryReference)" />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								</Project>