diff --git a/Directory.Packages.props b/Directory.Packages.props index e1eeef9d9ea..526d86ede69 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -24,9 +24,11 @@ + + @@ -39,6 +41,8 @@ + + @@ -69,7 +73,9 @@ + + @@ -120,6 +126,7 @@ + diff --git a/build.ps1 b/build.ps1 index 828a2c67f85..8769a6291ac 100644 --- a/build.ps1 +++ b/build.ps1 @@ -157,10 +157,15 @@ Invoke-BuildStep $VSMessage { -ev +BuildErrors Invoke-BuildStep 'Creating the EndToEnd test package' { - param($Configuration) - $EndToEndScript = Join-Path $PSScriptRoot scripts\cibuild\CreateEndToEndTestPackage.ps1 -Resolve - $OutDir = Join-Path $Artifacts VS15 - & $EndToEndScript -c $Configuration -out $OutDir + $msbuildArgs = "test\TestUtilities\CreateEndToEndTestPackage\CreateEndToEndTestPackage.proj", "/p:Configuration=$Configuration", "/restore:false", "/property:BuildProjectReferences=false" + + if ($Binlog) + { + $restoreArgs += "-bl:msbuild.createendtoendtestpackage.binlog" + } + + Trace-Log ". `"$MSBuildExe`" $msbuildArgs" + & $MSBuildExe @msbuildArgs } ` -args $Configuration ` -skip:(-not $PackageEndToEnd) ` diff --git a/build.sh b/build.sh old mode 100755 new mode 100644 index 06166461431..c7fdc1f2b40 --- a/build.sh +++ b/build.sh @@ -29,9 +29,6 @@ if [ "$CLEAR_CACHE" == "1" ]; then fi # restore packages -echo "dotnet msbuild build/bootstrap.proj /t:Restore" -dotnet msbuild build/bootstrap.proj /t:Restore - echo "dotnet msbuild build/build.proj /t:Restore /p:Configuration=Release /p:BuildNumber=1 /p:ReleaseLabel=beta" dotnet msbuild build/build.proj /t:Restore /p:Configuration=Release /p:BuildNumber=1 /p:ReleaseLabel=beta diff --git a/build/BuildValidator.proj b/build/BuildValidator.proj new file mode 100644 index 00000000000..1d6d0817d5e --- /dev/null +++ b/build/BuildValidator.proj @@ -0,0 +1,63 @@ + + + net472 + $(PkgNuGetValidator)\tools\NuGetValidator.exe + $([MSBuild]::GetDirectoryNameOfFileAbove('$(MSBuildThisFileDirectory)', '.git\index')) + $(RepoRoot)\submodules\NuGet.Build.Localization\localize\comments\15 + $(Temp) + $(MSBuildThisFileDirectory)BuildValidatorLogs + + + + + + + + + + + + + + + $(RepoRoot)\artifacts\VS15\NuGet.Tools.vsix + $(TempDirectory)\extractedVsix + $(LogsBasePath)\vsix + + + + + + + + + + + + + + $(RepoRoot)\artifacts + $(TempDirectory)\extractedVsix + $(LogsBasePath)\artifacts + + + + + + + + + + + + + + + + + diff --git a/build/bootstrap.proj b/build/bootstrap.proj deleted file mode 100644 index 4d4215111c4..00000000000 --- a/build/bootstrap.proj +++ /dev/null @@ -1,24 +0,0 @@ - - - - $(MSBuildThisFileDirectory)../packages/ - $(RestorePackagesPath)obj/ - netstandard2.0 - true - - - - - - - - - - - - - - - - - diff --git a/build/build.proj b/build/build.proj index 49fc7c9b368..bd16a0d846b 100644 --- a/build/build.proj +++ b/build/build.proj @@ -160,9 +160,9 @@ - + Properties="$(CommonMSBuildProperties);CreateVsixContainer=false" /> false @@ -40,7 +38,6 @@ $(BuildCommonDirectory)Shared $(ArtifactsDirectory)nupkgs\ $(RepositoryRootDirectory)packages\ - $(SolutionPackagesFolder)ilmerge\3.0.21\tools\net452\ILMerge.exe $(RepositoryRootDirectory) $(RepositoryRootDirectory)src $(RepositoryRootDirectory) @@ -48,9 +45,6 @@ $(RepositoryRootDirectory)submodules\NuGet.Build.Localization\ $(NuGetBuildLocalizationRepository)localize $(RepositoryRootDirectory)localize - $(SolutionPackagesFolder)microsoft.visualstudioeng.microbuild.core\1.0.0\build\ - $(SolutionPackagesFolder)microsoft.dotnet.build.tasks.feed\6.0.0-beta.20528.5\tools\netcoreapp2.1\Microsoft.DotNet.Build.Tasks.Feed.dll - $(SolutionPackagesFolder)microsoft.dotnet.maestro.tasks\1.1.0-beta.21378.2\tools\netcoreapp3.1\Microsoft.DotNet.Maestro.Tasks.dll $(NoWarn);NU5105;MSB3277;NETSDK1138 $(NoWarn);CS1998;CA1416;CS0618;CS1574 diff --git a/build/common.ps1 b/build/common.ps1 index 7cadf12a6e7..cffd1c02be1 100644 --- a/build/common.ps1 +++ b/build/common.ps1 @@ -7,10 +7,8 @@ $ConfigureJson = Join-Path $Artifacts configure.json $BuiltInVsWhereExe = "${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" $VSVersion = $env:VisualStudioVersion $DotNetExe = Join-Path $CLIRoot 'dotnet.exe' -$ILMerge = Join-Path $NuGetClientRoot 'packages\ilmerge\2.14.1208\tools\ILMerge.exe' Set-Alias dotnet $DotNetExe -Set-Alias ilmerge $ILMerge Function Read-PackageSources { param($NuGetConfig) @@ -309,18 +307,3 @@ Function Clear-Nupkgs { Remove-Item $Nupkgs\*.nupkg -Force } } - -Function Restore-SolutionPackages { - [CmdletBinding()] - param( - ) - $opts = 'msbuild', '-t:restore' - $opts += "${NuGetClientRoot}\build\bootstrap.proj" - - Trace-Log "Restoring packages @""$NuGetClientRoot""" - Trace-Log "dotnet $opts" - & dotnet $opts - if (-not $?) { - Error-Log "Restore failed @""$NuGetClientRoot"". Code: ${LASTEXITCODE}" - } -} diff --git a/build/common.targets b/build/common.targets index 9e5e25fd5ed..0fda63ce7f8 100644 --- a/build/common.targets +++ b/build/common.targets @@ -393,7 +393,4 @@ Condition=" ('%(Extension)' == '.dll' OR '%(Filename)' == 'NuGet.CommandLine.XPl Text="Newtonsoft.Json must be version $(NewtonsoftJsonPackageVersion) but resolved %(Reference.NuGetPackageVersion)" Condition=" %(Reference.NuGetPackageId) == 'Newtonsoft.Json' AND %(Reference.NuGetPackageVersion) != '$(NewtonsoftJsonPackageVersion)' " /> - - - diff --git a/build/loc.proj b/build/loc.proj index f1ff26bb4b3..63984cfe186 100644 --- a/build/loc.proj +++ b/build/loc.proj @@ -1,8 +1,8 @@ - - + + net472 Configuration=$(Configuration); ReleaseLabel=$(ReleaseLabel); @@ -12,22 +12,27 @@ $(ArtifactsDirectory) $(ArtifactsDirectory) + + + - - $(ArtifactsDirectory)microsoft.web.xdt\3.0.0\lib\netstandard2.0\Microsoft.Web.XmlTransform.dll + + $(ArtifactsDirectory)microsoft.web.xdt\lib\netstandard2.0\ - - $(ArtifactsDirectory)microsoft.web.xdt\3.0.0\lib\net40\Microsoft.Web.XmlTransform.dll + + $(ArtifactsDirectory)microsoft.web.xdt\lib\net40\ - $(ArtifactsDirectory)vsixlangpack\extension.vsixlangpack + $(ArtifactsDirectory)vsixlangpack\ - + + + - + $(LocalizationWorkDirectory)\{Lang}\15\%(Filename)%(Extension).lcl $(LocalizationWorkDirectory)\comments\15\%(Filename)%(Extension).lci 210 @@ -37,7 +42,9 @@ - + <_SubmoduleRepo Include="$(LocalizationRootDirectory)\**\*" /> <_SubmoduleFiles Include="@(_SubmoduleRepo)"> @@ -99,7 +106,4 @@ - - - diff --git a/build/publish.proj b/build/publish.proj index 2ca29b67891..c7a526335b1 100644 --- a/build/publish.proj +++ b/build/publish.proj @@ -1,17 +1,20 @@ - - - - + + + net472 + $(MSBuildThisFileDirectory)PublishToBuildAssetRegistryLogs + + + + + - - - - + + @@ -20,15 +23,15 @@ $(ArtifactsLogDir)AssetManifest\$(AssetManifestFileName) + - - - - - + + + + @@ -69,5 +72,4 @@ ManifestsPath="$(ArtifactsLogDir)AssetManifest\" AssetVersion="$(Version)" /> - diff --git a/build/sign.proj b/build/sign.proj index 13e98ecdbc6..5c7e67ff6b7 100644 --- a/build/sign.proj +++ b/build/sign.proj @@ -1,9 +1,7 @@ - - - - + + net472 Configuration=$(Configuration); ReleaseLabel=$(ReleaseLabel); @@ -16,29 +14,37 @@ GetOutputNupkgs;GetOutputVsix true + + + + Microsoft400 + 67 + + + + + + + + + + + + - - 3PartySHA2 - - - 3PartySHA2 - - - Microsoft400 - 67 - + - - - - + + @@ -56,7 +62,4 @@ - - - diff --git a/configure.ps1 b/configure.ps1 index c511b10c63a..c0e39efd962 100644 --- a/configure.ps1 +++ b/configure.ps1 @@ -46,11 +46,6 @@ Invoke-BuildStep 'Installing .NET CLI' { Install-DotnetCLI -Force:$Force -SkipDotnetInfo:$SkipDotnetInfo } -ev +BuildErrors -# Restoring tools required for build -Invoke-BuildStep 'Restoring solution packages' { - Restore-SolutionPackages -} -ev +BuildErrors - Invoke-BuildStep 'Cleaning package cache' { Clear-PackageCache } -skip:(-not $CleanCache) -ev +BuildErrors diff --git a/configure.sh b/configure.sh index cf8583c380d..11c61569083 100644 --- a/configure.sh +++ b/configure.sh @@ -67,13 +67,6 @@ echo "Initializing submodules..." git submodule init git submodule update -echo "Restoring bootstrap packages..." -dotnet msbuild build/bootstrap.proj /Target:Restore -if [ $? -ne 0 ]; then - echo "Bootstrap failed!!" - return 1 -fi - echo "Restoring NuGet packages..." dotnet msbuild build/build.proj /Target:Restore "/ConsoleLoggerParameters:Verbosity=Minimal;Summary;ForceNoAlign" /MaxCPUCount /NodeReuse:false if [ $? -ne 0 ]; then diff --git a/eng/pipelines/templates/Build_and_UnitTest.yml b/eng/pipelines/templates/Build_and_UnitTest.yml index fd7f9aeb596..c1af0bfd1c3 100644 --- a/eng/pipelines/templates/Build_and_UnitTest.yml +++ b/eng/pipelines/templates/Build_and_UnitTest.yml @@ -131,14 +131,14 @@ steps: inputs: solution: "build\\loc.proj" configuration: "$(BuildConfiguration)" - msbuildArguments: "/restore:false /target:AfterBuild /property:LocType=${{parameters.NuGetLocalizationType}} /binarylogger:$(Build.StagingDirectory)\\binlog\\03.Localize.binlog" + msbuildArguments: "/restore /property:LocType=${{parameters.NuGetLocalizationType}} /binarylogger:$(Build.StagingDirectory)\\binlog\\03.Localize.binlog" - task: MSBuild@1 displayName: "Build NuGet.exe Localized" inputs: solution: "src\\NuGet.Clients\\NuGet.CommandLine\\NuGet.CommandLine.csproj" configuration: "$(BuildConfiguration)" - msbuildArguments: "/t:Build /p:SkipILMergeOfNuGetExe=true /bl:$(Build.StagingDirectory)\\binlog\\04.BuildNuGetExe.binlog" + msbuildArguments: "/restore:false /t:Build /p:SkipILMergeOfNuGetExe=true /bl:$(Build.StagingDirectory)\\binlog\\04.BuildNuGetExe.binlog" - task: MSBuild@1 displayName: "ILMerge NuGet.exe" @@ -205,7 +205,7 @@ steps: inputs: solution: "build\\sign.proj" configuration: "$(BuildConfiguration)" - msbuildArguments: "/restore:false /target:AfterBuild /binarylogger:$(Build.StagingDirectory)\\binlog\\07.SignAssemblies.binlog" + msbuildArguments: "/restore /binarylogger:$(Build.StagingDirectory)\\binlog\\07.SignAssemblies.binlog" - task: MSBuild@1 displayName: "Pack Nupkgs" @@ -226,7 +226,7 @@ steps: inputs: solution: "build\\build.proj" configuration: "$(BuildConfiguration)" - msbuildArguments: "/restore:false /target:BuildVSIX /property:BuildRTM=$(BuildRTM) /property:ExcludeTestProjects=$(BuildRTM) /property:IsCIBuild=true /binarylogger:$(Build.StagingDirectory)\\binlog\\11.BuildVSIX.binlog" + msbuildArguments: "/restore:false /target:BuildVSIX /property:BuildRTM=$(BuildRTM) /property:ExcludeTestProjects=$(BuildRTM) /property:IsCIBuild=true /binarylogger:$(Build.StagingDirectory)\\binlog\\11.PackVSIX.binlog" condition: "and(succeeded(),eq(variables['BuildRTM'], 'false'))" - ${{ if not(parameters.BuildRTM)}}: @@ -238,9 +238,9 @@ steps: - task: MSBuild@1 displayName: "Generate Build Tools package" inputs: - solution: "setup/Microsoft.VisualStudio.NuGet.BuildTools.vsmanproj" + solution: "setup\\Microsoft.VisualStudio.NuGet.BuildTools\\Microsoft.VisualStudio.NuGet.BuildTools.vsmanproj" configuration: "$(BuildConfiguration)" - msbuildArguments: "/restore:false /property:BuildNumber=$(BuildNumber) /property:IsVsixBuild=true /binarylogger:$(Build.StagingDirectory)\\binlog\\12.BuildToolsVSIX.binlog" + msbuildArguments: "/property:BuildNumber=$(BuildNumber) /property:IsVsixBuild=true /binarylogger:$(Build.StagingDirectory)\\binlog\\12.BuildToolsVSIX.binlog" condition: " and(succeeded(), eq(variables['BuildRTM'], 'false'))" - task: MSBuild@1 @@ -248,7 +248,7 @@ steps: inputs: solution: "build\\sign.proj" configuration: "$(BuildConfiguration)" - msbuildArguments: "/restore:false /target:AfterBuild /property:SignPackages=true /binarylogger:$(Build.StagingDirectory)\\binlog\\13.SignPackages.binlog" + msbuildArguments: "/restore /property:SignPackages=true /binarylogger:$(Build.StagingDirectory)\\binlog\\13.SignPackages.binlog" - task: NuGetToolInstaller@1 displayName: Use NuGet 6.x @@ -286,25 +286,25 @@ steps: - task: MSBuild@1 displayName: "Generate VSMAN file for NuGet Core VSIX" inputs: - solution: "setup\\Microsoft.VisualStudio.NuGet.Core.vsmanproj" + solution: "setup\\Microsoft.VisualStudio.NuGet.Core\\Microsoft.VisualStudio.NuGet.Core.vsmanproj" configuration: "$(BuildConfiguration)" - msbuildArguments: "/restore:false /property:ManifestDirPath=$(Build.ArtifactStagingDirectory)/sbom /binarylogger:$(Build.StagingDirectory)\\binlog\\14.GenerateVSManifestForVSIX.binlog" + msbuildArguments: "/property:ManifestDirPath=$(Build.ArtifactStagingDirectory)/sbom /binarylogger:$(Build.StagingDirectory)\\binlog\\14.GenerateVSManifestForVSIX.binlog" condition: " and(succeeded(),eq(variables['BuildRTM'], 'false')) " - task: MSBuild@1 displayName: "Generate VSMAN file for Build Tools VSIX" inputs: - solution: "setup\\Microsoft.VisualStudio.NuGet.BuildTools.vsmanproj" + solution: "setup\\Microsoft.VisualStudio.NuGet.BuildTools\\Microsoft.VisualStudio.NuGet.BuildTools.vsmanproj" configuration: "$(BuildConfiguration)" - msbuildArguments: "/restore:false /property:IsVsixBuild=false /property:ManifestDirPath=$(Build.ArtifactStagingDirectory)/sbom /binarylogger:$(Build.StagingDirectory)\\binlog\\15.GenerateVSManifestForToolsVSIX.binlog" + msbuildArguments: "/property:IsVsixBuild=false /property:ManifestDirPath=$(Build.ArtifactStagingDirectory)/sbom /binarylogger:$(Build.StagingDirectory)\\binlog\\15.GenerateVSManifestForToolsVSIX.binlog" condition: " and(succeeded(),eq(variables['BuildRTM'], 'false')) " -- task: PowerShell@1 +- task: MSBuild@1 displayName: "Create EndToEnd Test Package" inputs: - scriptName: "$(Build.Repository.LocalPath)\\scripts\\cibuild\\CreateEndToEndTestPackage.ps1" - arguments: "-c $(BuildConfiguration) -out $(Build.Repository.LocalPath)\\artifacts\\VS15" - failOnStandardError: "true" + solution: "$(Build.Repository.LocalPath)\\test\\TestUtilities\\CreateEndToEndTestPackage\\CreateEndToEndTestPackage.proj" + configuration: "$(BuildConfiguration)" + msbuildArguments: "/property:EndToEndPackageOutputPath=$(Build.Repository.LocalPath)\\artifacts\\VS15 /binarylogger:$(Build.StagingDirectory)\\binlog\\16.CreateEndToEndTestPackage.binlog" condition: " and(succeeded(),eq(variables['BuildRTM'], 'false')) " - task: NuGetCommand@2 @@ -359,7 +359,7 @@ steps: displayName: 'Generate .runsettings files' inputs: solution: 'build\runsettings.proj' - msbuildArguments: '/restore:false /property:OutputPath="$(Build.Repository.LocalPath)\artifacts\RunSettings" /property:TestDrop="RunSettings/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildId)" /property:ProfilingInputsDrop="ProfilingInputs/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildId)" /binarylogger:$(Build.StagingDirectory)\\binlog\\16.GenerateRunSettings.binlog' + msbuildArguments: '/restore:false /property:OutputPath="$(Build.Repository.LocalPath)\artifacts\RunSettings" /property:TestDrop="RunSettings/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildId)" /property:ProfilingInputsDrop="ProfilingInputs/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildId)" /binarylogger:$(Build.StagingDirectory)\\binlog\\17.GenerateRunSettings.binlog' condition: "and(succeeded(), eq(variables['BuildRTM'], 'false'))" - task: PowerShell@1 @@ -429,7 +429,7 @@ steps: inputs: solution: "build\\symbols.proj" configuration: "$(BuildConfiguration)" - msbuildArguments: "/restore:false /property:IsSymbolBuild=true /property:BuildRTM=$(BuildRTM) /binarylogger:$(Build.StagingDirectory)\\binlog\\17.CollectBuildSymbols.binlog" + msbuildArguments: "/restore:false /property:IsSymbolBuild=true /property:BuildRTM=$(BuildRTM) /binarylogger:$(Build.StagingDirectory)\\binlog\\18.CollectBuildSymbols.binlog" maximumCpuCount: true condition: " and(succeeded(), eq(variables['IsOfficialBuild'], 'true')) " @@ -451,25 +451,27 @@ steps: dropMetadataContainerName: "DropMetadata-Product" condition: " and(succeeded(),eq(variables['BuildRTM'], 'false')) " -- task: PowerShell@1 +- task: MSBuild@1 displayName: "LocValidation: Verify VSIX" inputs: - scriptName: "$(Build.Repository.LocalPath)\\scripts\\cibuild\\BuildValidator.ps1" - arguments: "-BuildRTM $(BuildRTM) -RepoRoot $(Build.Repository.LocalPath) -OutputLogsBasePath $(Build.Repository.LocalPath)\\logs -TmpPath $(Agent.TempDirectory) -ValidateVsix" + solution: "build\\BuildValidator.proj" + configuration: "$(BuildConfiguration)" + msbuildArguments: "/target:ValidateVsix /property:BuildRTM=$(BuildRTM) /property:LogsBasePath=$(Build.Repository.LocalPath)\\logs\\BuildValidatorLogs /property:TempDirectory=$(Agent.TempDirectory) /binarylogger:$(Build.StagingDirectory)\\binlog\\19.ValidateVsixLocalization.binlog" condition: "and(succeeded(), eq(variables['BuildRTM'], 'false'))" -- task: PowerShell@1 +- task: MSBuild@1 displayName: "LocValidation: Verify Artifacts" inputs: - scriptName: "$(Build.Repository.LocalPath)\\scripts\\cibuild\\BuildValidator.ps1" - arguments: "-BuildRTM $(BuildRTM) -RepoRoot $(Build.Repository.LocalPath) -OutputLogsBasePath $(Build.Repository.LocalPath)\\logs" + solution: "build\\BuildValidator.proj" + configuration: "$(BuildConfiguration)" + msbuildArguments: "/target:ValidateArtifacts /property:BuildRTM=$(BuildRTM) /property:LogsBasePath=$(Build.Repository.LocalPath)\\logs\\BuildValidatorLogs /property:TempDirectory=$(Agent.TempDirectory) /binarylogger:$(Build.StagingDirectory)\\binlog\\20.ValidateArtifactsLocalization.binlog" condition: "and(succeeded(), eq(variables['BuildRTM'], 'false'))" - task: PublishPipelineArtifact@1 displayName: "LocValidation: Publish Logs as an artifact" inputs: artifactName: LocValidationLogs - targetPath: "$(Build.Repository.LocalPath)\\logs\\LocalizationValidation" + targetPath: "$(Build.Repository.LocalPath)\\logs\\BuildValidatorLogs" condition: "and(succeeded(), eq(variables['BuildRTM'], 'false'))" # Use dotnet msbuild instead of MSBuild CLI. @@ -479,7 +481,7 @@ steps: - task: CmdLine@2 displayName: "Publish to the .NET Core build asset registry (BAR)" inputs: - script: dotnet msbuild $(Build.Repository.LocalPath)\build\publish.proj /t:PublishToBuildAssetRegistry /property:NuGetClientNupkgsDirectoryPath=$(Build.Repository.LocalPath)\artifacts\$(NupkgOutputDir) /property:BUILD_BUILDNUMBER=$(Build.BuildNumber) /property:BUILD_SOURCEBRANCH=$(Build.SourceBranchName) /property:BUILD_SOURCEVERSION=$(Build.SourceVersion) /property:BUILD_REPOSITORY_URI=$(Build.Repository.Uri) /property:BUILD_REPOSITORY_NAME=$(Build.Repository.Name) /property:ArtifactsLogDir=$(Build.Repository.LocalPath)\artifacts\manifests\ /property:MaestroApiEndpoint=$(MaestroApiEndpoint) /property:MaestroAccessToken=$(MaestroAccessToken) /binarylogger:$(Build.StagingDirectory)\binlog\PublishToBuildAssetRegistry.binlog + script: dotnet msbuild $(Build.Repository.LocalPath)\build\publish.proj /t:PublishToBuildAssetRegistry /property:NuGetClientNupkgsDirectoryPath=$(Build.Repository.LocalPath)\artifacts\$(NupkgOutputDir) /property:BUILD_BUILDNUMBER=$(Build.BuildNumber) /property:BUILD_SOURCEBRANCH=$(Build.SourceBranchName) /property:BUILD_SOURCEVERSION=$(Build.SourceVersion) /property:BUILD_REPOSITORY_URI=$(Build.Repository.Uri) /property:BUILD_REPOSITORY_NAME=$(Build.Repository.Name) /property:ArtifactsLogDir=$(Build.Repository.LocalPath)\artifacts\manifests\ /property:MaestroApiEndpoint=$(MaestroApiEndpoint) /property:MaestroAccessToken=$(MaestroAccessToken) /binarylogger:$(Build.StagingDirectory)\binlog\21.PublishToBuildAssetRegistry.binlog workingDirectory: cli failOnStderr: true env: diff --git a/global.json b/global.json index ce045135984..2e1ef9fdf2f 100644 --- a/global.json +++ b/global.json @@ -8,5 +8,8 @@ // Arcade-powered source-build. "sdk": { "allowPrerelease": true + }, + "msbuild-sdks": { + "Microsoft.Build.NoTargets": "3.7.0" } } diff --git a/scripts/cibuild/BuildValidator.ps1 b/scripts/cibuild/BuildValidator.ps1 deleted file mode 100644 index a9c7f0d6076..00000000000 --- a/scripts/cibuild/BuildValidator.ps1 +++ /dev/null @@ -1,66 +0,0 @@ -<# -.SYNOPSIS -Validates the result of the localization process - -.DESCRIPTION -Runs NuGetValidator.exe over localized artifact binaries to count validation mismatchs between binaries and localization inputs - -.PARAMETER RepoRoot -Path to NuGet.Client repo root folder - -.PARAMETER OutputLogsBasePath -Path to logs output folder - -.PARAMETER BuildRTM -true/false depending on whether nupkgs are being with or without the release labels. - -.PARAMETER ValidateVsix -Flag to verify VSIX artifact. Otherwise, verifies binaries under $RepoRoot\artifacts folder (default) - -.PARAMETER TmpPath -Path to a temporary folder to extract the VSIX artifact. -#> -param -( - [Parameter(Mandatory=$True)] - [string]$RepoRoot, - - [Parameter(Mandatory=$True)] - [string]$OutputLogsBasePath, - - [Parameter(Mandatory=$True)] - [string]$BuildRTM, - - [switch]$ValidateVsix, - - [string]$TmpPath = $Env:TEMP -) - -if ($BuildRTM -eq 'false') -{ - $NuGetValidator = [System.IO.Path]::Combine($RepoRoot, 'packages', 'nugetvalidator', '2.0.5', 'tools', 'NuGetValidator.exe') - $LocalizationRepository = [System.IO.Path]::Combine($RepoRoot, 'submodules', 'NuGet.Build.Localization', 'localize', 'comments', '15') - - if ($ValidateVsix) - { - $VsixLocation = [System.IO.Path]::Combine($RepoRoot, 'artifacts', 'VS15', 'NuGet.Tools.vsix') - $VsixExtractLocation = [System.IO.Path]::Combine($TmpPath, 'extractedVsix') - $VsixLogOutputDir = [System.IO.Path]::Combine($OutputLogsBasePath, 'LocalizationValidation', 'vsix') - - Write-Host "Validating NuGet.Tools.Vsix localization..." - Write-Host "Running: $NuGetValidator localization --vsix --vsix-path $VsixLocation --vsix-extract-path $VsixExtractLocation --output-path $VsixLogOutputDir --comments-path $LocalizationRepository" - & $NuGetValidator localization --vsix --vsix-path $VsixLocation --vsix-extract-path $VsixExtractLocation --output-path $VsixLogOutputDir --comments-path $LocalizationRepository - } - else - { - $ArtifactsLocation = [System.IO.Path]::Combine($RepoRoot, 'artifacts') - $ArtifactsLogOutputDir = [System.IO.Path]::Combine($OutputLogsBasePath, 'LocalizationValidation', 'artifacts') - - Write-Host "Validating NuGet.Client repository localization..." - Write-Host "Running: $NuGetValidator localization --artifacts-path $ArtifactsLocation --output-path $ArtifactsLogOutputDir --comments-path $LocalizationRepository --filter-paths-containing net45" - & $NuGetValidator localization --artifacts-path $ArtifactsLocation --output-path $ArtifactsLogOutputDir --comments-path $LocalizationRepository --filter-paths-containing net45 - } - - # return the exit code from the validator - exit $LASTEXITCODE -} diff --git a/scripts/cibuild/CreateEndToEndTestPackage.ps1 b/scripts/cibuild/CreateEndToEndTestPackage.ps1 deleted file mode 100644 index 2e40e2e212c..00000000000 --- a/scripts/cibuild/CreateEndToEndTestPackage.ps1 +++ /dev/null @@ -1,140 +0,0 @@ -<# -.SYNOPSIS -Creates end-to-end test package for test pass - -.PARAMETER Configuration -API.Test build configuration to place in test package. Debug by default. - -.PARAMETER OutputDirectory -Output directory where EndToEnd.zip package file will be created. -Will use current directory if not provided. - -.PARAMETER NuGetRoot -Optional. NuGet.Client repository root -#> -[CmdletBinding()] -param( - [Parameter(Mandatory=$False)] - [Alias('c')] - [string]$Configuration = 'Debug', - [Parameter(Mandatory=$False)] - [Alias('out')] - [string]$OutputDirectory = $PWD, - [Parameter(Mandatory=$False)] - [string]$NuGetRoot -) - -. "$PSScriptRoot\..\common.ps1" - -if (-not $NuGetRoot -and (Test-Path Env:\NuGetRoot)) { - $NuGetRoot = $env:NuGetRoot -} - -if (-not $NuGetRoot) { - $NuGetRoot = Join-Path $PSScriptRoot '..\..\' -Resolve -} - -$WorkingDirectory = New-TempDir - -$opts = '/s', '/z', '/r:3', '/w:30', '/np', '/nfl' - -if ($VerbosePreference) { - $opts += '/v' -} -else { - $opts += '/ndl', '/njs' -} - -Function Get-TestDataPackageDirectory() -{ - $packagesConfigFilePath = [System.IO.Path]::Combine($NuGetRoot, 'build', 'bootstrap.proj') - - [System.Xml.XmlDocument] $xml = Get-Content $packagesConfigFilePath - - $package = $xml.SelectSingleNode('//Project/ItemGroup/PackageDownload[@Include="NuGet.Client.EndToEnd.TestData"]') - $pkgId = $package.Include - $pkgVersion = $package.Version.Trim('[', ']') - - $path = [System.IO.Path]::Combine($NuGetRoot, 'packages', $pkgId, $pkgVersion) - - Return [System.IO.DirectoryInfo]::new($path) -} - -Function Run-RoboCopy( - [Parameter(Mandatory = $True)] [string] $sourceDirectoryPath, - [Parameter(Mandatory = $True)] [string] $destinationDirectoryPath, - [Parameter(Mandatory = $False)] [string[]] $options) -{ - & robocopy $sourceDirectoryPath $destinationDirectoryPath $options - - # RoboCopy returns a variety of error codes. 0-3 are success; however, to PowerShell a non-zero exit code is a failure. - If ($LastExitCode -lt 4) - { - $LastExitCode = 0 - } - Else - { - Write-Error "Task failed while attempting to copy test files from $sourceDirectoryPath to $destinationDirectoryPath. LastExitCode: $LastExitCode" - - Exit 1 - } -} - -try { - $TestSource = Join-Path $NuGetRoot test\EndToEnd -Resolve - Write-Verbose "Copying all test files from '$TestSource' to '$WorkingDirectory'" - - # Copy everything except the /Packages directory. - # Instead, the /Packages directory will be copied from the NuGet.Client.EndToEnd.TestData package. - Run-RoboCopy $TestSource $WorkingDirectory $($opts + '/XD' + 'Packages') - - $testDataPackageDirectory = Get-TestDataPackageDirectory - - $TestSource = [System.IO.Path]::Combine($testDataPackageDirectory.FullName, 'content', 'Packages') - $packagesDirectory = Join-Path $WorkingDirectory 'Packages' - Write-Verbose "Copying all test data from '$TestSource' to '$packagesDirectory'" - Run-RoboCopy $TestSource $packagesDirectory $opts - - $TestExtensionDirectoryPath = Join-Path $NuGetRoot "artifacts\API.Test\bin\${Configuration}\net472" - if (!(Test-Path "$TestExtensionDirectoryPath\API.Test.dll")) - { - $errorMessage = "API.Test binaries not found at $TestExtensionDirectoryPath\API.Test.dll. Make sure the project has been built." - Write-Output $errorMessage - throw $errorMessage - } - Write-Verbose "Copying test extension from '$TestExtensionDirectoryPath' to '$WorkingDirectory'" - Run-RoboCopy $TestExtensionDirectoryPath $WorkingDirectory $(@('API.Test.*') + $opts) - - $GeneratePackagesUtil = Join-Path $NuGetRoot "artifacts\GenerateTestPackages\bin\${Configuration}\net472" - if (!(Test-Path "$GeneratePackagesUtil\GenerateTestPackages.exe")) - { - $errorMessage = "GenerateTestPackages binaries not found at $GeneratePackagesUtil\GenerateTestPackages.exe. Make sure the project has been built." - Write-Output $errorMessage - throw $errorMessage - } - Write-Verbose "Copying utility binaries from `"$GeneratePackagesUtil`" to `"$WorkingDirectory`"" - Run-RoboCopy $GeneratePackagesUtil $WorkingDirectory $(@('*.exe', '*.dll', '*.pdb') + $opts) - - $ScriptsDirectory = Join-Path $WorkingDirectory scripts - New-Item -ItemType Directory -Force -Path $ScriptsDirectory | Out-Null - - $ScriptsSource = Join-Path $NuGetRoot Scripts\e2etests -Resolve - Write-Verbose "Copying test scripts from '$ScriptsSource' to '$ScriptsDirectory'" - Run-RoboCopy $ScriptsSource $ScriptsDirectory $(@('*.ps1') + $opts) - Copy-Item -Path (Join-Path $NuGetRoot scripts\utils\PostGitCommitStatus.ps1) -Destination $ScriptsDirectory - - if (-not (Test-Path $OutputDirectory)) { - mkdir $OutputDirectory | Out-Null - } - - $TestPackage = Join-Path $OutputDirectory EndToEnd.zip - Write-Verbose "Creating test package '$TestPackage'" - Remove-Item $TestPackage -Force -ea Ignore | Out-Null - Compress-Archive -Path "$WorkingDirectory\*" -DestinationPath $TestPackage -CompressionLevel Optimal - - Write-Output "Created end-to-end test package at '$TestPackage'" -} -finally { - Remove-Item $workingDirectory -r -Force -WhatIf:$false - exit 0 -} diff --git a/setup/After.Microsoft.Common.targets b/setup/After.Microsoft.Common.targets new file mode 100644 index 00000000000..7e2951ff3c9 --- /dev/null +++ b/setup/After.Microsoft.Common.targets @@ -0,0 +1,6 @@ + + + + + + diff --git a/setup/Directory.Build.props b/setup/Directory.Build.props new file mode 100644 index 00000000000..129dd19841a --- /dev/null +++ b/setup/Directory.Build.props @@ -0,0 +1,8 @@ + + + + false + true + $(CustomAfterMicrosoftCommonTargets);$(MSBuildThisFileDirectory)After.Microsoft.Common.targets + + diff --git a/setup/Directory.Build.targets b/setup/Directory.Build.targets new file mode 100644 index 00000000000..d50ebf8d14c --- /dev/null +++ b/setup/Directory.Build.targets @@ -0,0 +1,11 @@ + + + + $(OutputPath)$(OutputName) + $(CompileDependsOn);GenerateSetupManifest + + + $(TargetName)$(TargetExt) + $(TargetDir)$(TargetFileName) + + diff --git a/setup/Microsoft.VisualStudio.NuGet.BuildTools.swixproj b/setup/Microsoft.VisualStudio.NuGet.BuildTools.Swix/Microsoft.VisualStudio.NuGet.BuildTools.Swix.swixproj similarity index 60% rename from setup/Microsoft.VisualStudio.NuGet.BuildTools.swixproj rename to setup/Microsoft.VisualStudio.NuGet.BuildTools.Swix/Microsoft.VisualStudio.NuGet.BuildTools.Swix.swixproj index 249c0e894cd..523b0727e4e 100644 --- a/setup/Microsoft.VisualStudio.NuGet.BuildTools.swixproj +++ b/setup/Microsoft.VisualStudio.NuGet.BuildTools.Swix/Microsoft.VisualStudio.NuGet.BuildTools.Swix.swixproj @@ -1,11 +1,11 @@ - - - - + + + net472 neutral false - $(MSBuildProjectName) + Microsoft.VisualStudio.NuGet.BuildTools + $(TargetName) vsix true $([MSBuild]::Add($(MajorNuGetVersion), 11)) @@ -15,7 +15,7 @@ $(ArtifactsDirectory)NuGet.VisualStudio.Client\bin\$(Configuration)\ - $(ArtifactsDirectory)microsoft.web.xdt\3.0.0\lib\net40\ + $(ArtifactsDirectory)microsoft.web.xdt\lib\net40\ @@ -30,11 +30,9 @@ - - + + - - - - + + diff --git a/setup/Microsoft.VisualStudio.NuGet.BuildTools.swr b/setup/Microsoft.VisualStudio.NuGet.BuildTools.Swix/Microsoft.VisualStudio.NuGet.BuildTools.swr similarity index 100% rename from setup/Microsoft.VisualStudio.NuGet.BuildTools.swr rename to setup/Microsoft.VisualStudio.NuGet.BuildTools.Swix/Microsoft.VisualStudio.NuGet.BuildTools.swr diff --git a/setup/Microsoft.VisualStudio.NuGet.BuildTools.vsmanproj b/setup/Microsoft.VisualStudio.NuGet.BuildTools/Microsoft.VisualStudio.NuGet.BuildTools.vsmanproj similarity index 60% rename from setup/Microsoft.VisualStudio.NuGet.BuildTools.vsmanproj rename to setup/Microsoft.VisualStudio.NuGet.BuildTools/Microsoft.VisualStudio.NuGet.BuildTools.vsmanproj index 8d6f42333f4..ad987f3a932 100644 --- a/setup/Microsoft.VisualStudio.NuGet.BuildTools.vsmanproj +++ b/setup/Microsoft.VisualStudio.NuGet.BuildTools/Microsoft.VisualStudio.NuGet.BuildTools.vsmanproj @@ -1,8 +1,7 @@ - - - - + + + net472 true true @@ -21,16 +20,16 @@ - + + SBOMFileLocation="$(ManifestDirPath)\_manifest\spdx_2.2\manifest.spdx.json" /> - - - + + + diff --git a/setup/Microsoft.VisualStudio.NuGet.Core.vsmanproj b/setup/Microsoft.VisualStudio.NuGet.Core.vsmanproj deleted file mode 100644 index d71b487048c..00000000000 --- a/setup/Microsoft.VisualStudio.NuGet.Core.vsmanproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - true - true - $(SemanticVersion).$(BuildNumber) - $(MSBuildProjectName) - $(VsixPublishDestination) - v4.7.2 - - - - - - - - diff --git a/setup/Microsoft.VisualStudio.NuGet.Core/Microsoft.VisualStudio.NuGet.Core.vsmanproj b/setup/Microsoft.VisualStudio.NuGet.Core/Microsoft.VisualStudio.NuGet.Core.vsmanproj new file mode 100644 index 00000000000..c942e1d0f35 --- /dev/null +++ b/setup/Microsoft.VisualStudio.NuGet.Core/Microsoft.VisualStudio.NuGet.Core.vsmanproj @@ -0,0 +1,20 @@ + + + + net472 + + true + true + $(SemanticVersion).$(BuildNumber) + $(MSBuildProjectName) + $(VsixPublishDestination) + v4.7.2 + + + + + + + + diff --git a/src/NuGet.Clients/NuGet.CommandLine/NuGet.CommandLine.csproj b/src/NuGet.Clients/NuGet.CommandLine/NuGet.CommandLine.csproj index 187bbf486a5..afd829781b1 100644 --- a/src/NuGet.Clients/NuGet.CommandLine/NuGet.CommandLine.csproj +++ b/src/NuGet.Clients/NuGet.CommandLine/NuGet.CommandLine.csproj @@ -53,6 +53,7 @@ + @@ -114,7 +115,7 @@ Outputs="$(PathToMergedNuGetExe)" Condition="'$(BuildingInsideVisualStudio)' != 'true' and '$(SkipILMergeOfNuGetExe)' != 'true'" > - $(ILMergeExePath) /lib:$(OutputPath) /out:$(PathToMergedNuGetExe) @(MergeAllowDup -> '/allowdup:%(Identity)', ' ') /log:$(OutputPath)IlMergeLog.txt + $(ILMergeConsolePath) /lib:$(OutputPath) /out:$(PathToMergedNuGetExe) @(MergeAllowDup -> '/allowdup:%(Identity)', ' ') /log:$(OutputPath)IlMergeLog.txt $(IlmergeCommand) /delaysign /keyfile:$(MS_PFX_PATH) $(IlmergeCommand) $(PathToBuiltNuGetExe) @(BuildArtifacts->'%(fullpath)', ' ') $(IlmergeCommand) @(LocResource->'%(fullpath)', ' ') diff --git a/src/NuGet.Clients/NuGet.MSSigning.Extensions/NuGet.MSSigning.Extensions.csproj b/src/NuGet.Clients/NuGet.MSSigning.Extensions/NuGet.MSSigning.Extensions.csproj index 5ac9de68195..0ab833b385a 100644 --- a/src/NuGet.Clients/NuGet.MSSigning.Extensions/NuGet.MSSigning.Extensions.csproj +++ b/src/NuGet.Clients/NuGet.MSSigning.Extensions/NuGet.MSSigning.Extensions.csproj @@ -12,6 +12,10 @@ GetSymbolsToIndexCustom + + + + @@ -50,7 +54,7 @@ Condition="'$(BuildingInsideVisualStudio)' != 'true'"> - $(ILMergeExePath) $(PathToBuiltNuGetExe) /lib:$(OutputPath) @(BuildArtifacts->'%(filename)%(extension)', ' ') /out:$(PathToMergedNuGetExe) @(MergeAllowDup -> '/allowdup:%(Identity)', ' ') + $(ILMergeConsolePath) $(PathToBuiltNuGetExe) /lib:$(OutputPath) @(BuildArtifacts->'%(filename)%(extension)', ' ') /out:$(PathToMergedNuGetExe) @(MergeAllowDup -> '/allowdup:%(Identity)', ' ') $(IlmergeCommand) /delaysign /keyfile:$(MS_PFX_PATH) diff --git a/src/NuGet.Clients/NuGet.VisualStudio.Client/NuGet.VisualStudio.Client.csproj b/src/NuGet.Clients/NuGet.VisualStudio.Client/NuGet.VisualStudio.Client.csproj index 5fba0491bb3..314325e46d6 100644 --- a/src/NuGet.Clients/NuGet.VisualStudio.Client/NuGet.VisualStudio.Client.csproj +++ b/src/NuGet.Clients/NuGet.VisualStudio.Client/NuGet.VisualStudio.Client.csproj @@ -65,18 +65,10 @@ Modules\NuGet\NuGet.PackageManagement.PowerShellCmdlets.dll-Help.xml true - - Newtonsoft.Json.dll - true - - + Microsoft.Web.XmlTransform.dll true - - Lucene.Net.dll - true - Modules\NuGet\Add-WrapperMembers.ps1 true @@ -326,9 +318,12 @@ - - + + + + + @@ -356,7 +351,7 @@ - + @@ -419,7 +414,7 @@ - <_LocalizedFiles Include="$(ArtifactsDirectory)microsoft.web.xdt\3.0.0\lib\net40\**\Microsoft.Web.XmlTransform.resources.dll" /> + <_LocalizedFiles Include="$(ArtifactsDirectory)microsoft.web.xdt\lib\net40\**\Microsoft.Web.XmlTransform.resources.dll" /> <_LocalizedFiles Include="$(ArtifactsDirectory)vsixlangpack\**\extension.vsixlangpack" /> <_VsixLocFiles Include="@(_LocalizedFiles)"> %(_LocalizedFiles.RecursiveDir)%(_LocalizedFiles.Filename)%(_LocalizedFiles.Extension) @@ -432,4 +427,32 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/NuGet.Core/NuGet.Build.Tasks.Pack/NuGet.Build.Tasks.Pack.csproj b/src/NuGet.Core/NuGet.Build.Tasks.Pack/NuGet.Build.Tasks.Pack.csproj index 8c945fe98d8..7940ac1d11b 100644 --- a/src/NuGet.Core/NuGet.Build.Tasks.Pack/NuGet.Build.Tasks.Pack.csproj +++ b/src/NuGet.Core/NuGet.Build.Tasks.Pack/NuGet.Build.Tasks.Pack.csproj @@ -36,6 +36,10 @@ + + + + @@ -107,7 +111,7 @@ - $(ILMergeExePath) ^ + $(ILMergeConsolePath) ^ /out:$(PathToMergedNuGetPack) ^ $(ILMergePlatformArg) ^ /allowDup ^ @@ -154,7 +158,7 @@ - $(ILMergeExePath) ^ + $(ILMergeConsolePath) ^ /out:$(PathToMergedNuGetPackResource) ^ $(ILMergePlatformArg) ^ /allowDup ^ diff --git a/test/TestUtilities/CreateEndToEndTestPackage/CreateEndToEndTestPackage.proj b/test/TestUtilities/CreateEndToEndTestPackage/CreateEndToEndTestPackage.proj new file mode 100644 index 00000000000..e6f7212b92b --- /dev/null +++ b/test/TestUtilities/CreateEndToEndTestPackage/CreateEndToEndTestPackage.proj @@ -0,0 +1,69 @@ + + + net472 + $([MSBuild]::NormalizeDirectory($(IntermediateOutputPath), 'temp')) + $([MSBuild]::NormalizeDirectory($(EnlistmentRoot), 'artifacts', 'VS15')) + + + + + + + + + + + + + $([MSBuild]::NormalizeDirectory($(WorkingDirectory), 'scripts')) + $([MSBuild]::NormalizePath($(EndToEndPackageOutputPath), 'EndToEnd.zip')) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +