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'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+