diff --git a/build/dependencies.props b/build/dependencies.props
index 0c738b654e..f442d498dc 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -21,11 +21,11 @@
2.3.2
1.1.3
1.1.0-preview
- 15.3.409
- 15.3.409
- 15.3.409
- 15.3.409
- 15.3.409
+ 15.7.0-preview-000010-1365343
+ 15.7.0-preview-000010-1365343
+ 15.7.0-preview-000010-1365343
+ 15.7.0-preview-000010-1365343
+ 15.7.0-preview-000010-1365343
2.6.1
2.6.1
2.6.1
@@ -39,7 +39,7 @@
4.5.0-preview2-26130-01
2.1.0-preview2-25711-01
1.0.0-rc3-003121
- 2.1.0-preview2-25711-01
+ 2.1.0-preview1-26208-06
1.1.0
3.14.2
5.2.0
@@ -47,7 +47,8 @@
1.0.5
1.1.2
2.0.0
- 2.1.0-preview2-26130-04
+
+ 2.1.0-preview2-26130-04
2.6.0-beta2-62211-02
2.1.0-preview2-26130-04
2.1.0-preview2-26130-04
@@ -87,11 +88,10 @@
4.7.49
0.9.0-beta2
1.6.1
- 2.0.1
- 2.0.0
+ 2.0.1
1.0.1
10.0.1
- 4.3.0
+ 4.7.0-preview1-4939
12.2.1100
2.2.0
2.1.0-preview2-26130-04
@@ -131,7 +131,6 @@
0.1.0-preview2-180130-1
4.5.0-preview2-26130-01
1.5.0-preview2-26126-03
- 0.1.0-preview2-180130-1
4.5.0-preview2-26130-01
1.2.0-preview2-26126-03
1.2.0-preview2-26126-03
@@ -143,14 +142,11 @@
4.5.0-preview2-26130-01
4.5.0-preview2-26130-01
4.5.0-preview2-26130-01
- 5.2.0
3.1.1
4.5.0-preview2-26130-01
4.5.0-preview2-26130-01
- 0.1.0-preview2-180130-1
0.1.0-preview2-180130-1
0.1.0-preview2-180130-1
- 0.1.0-preview2-180130-1
4.5.0-preview2-26130-01
4.5.0-preview2-26130-01
4.5.0-preview2-26130-01
@@ -212,7 +208,7 @@
-
+
$(MicrosoftNETCoreAppPackageVersion)
\ No newline at end of file
diff --git a/build/external-dependencies.props b/build/external-dependencies.props
index bf137e836e..15111d42de 100644
--- a/build/external-dependencies.props
+++ b/build/external-dependencies.props
@@ -18,7 +18,7 @@
- https://dotnet.myget.org/F/dotnet-core/api/v3/index.json
+ https://dotnet.myget.org/F/dotnet-core/api/v3/index.json;https://dotnetfeed.blob.core.windows.net/orchestrated-release-2-1/20180208-05/final/index.json
@@ -101,6 +101,12 @@
+
+
+
+
+
+
@@ -108,9 +114,6 @@
-
-
-
@@ -238,11 +241,6 @@
-
-
-
-
-
KRB2004
@@ -326,15 +324,10 @@
KRB2004
NETStandard16PackageVersion
-
+
KRB2004
- NETStandard20PackageVersion
-
-
-
- KRB2004
- NETStandard201PackageVersion
+ NETStandardLibrary20PackageVersion
@@ -347,7 +340,6 @@
VisualStudio_NewtonsoftJsonPackageVersion
-
diff --git a/build/tasks/ProjectModel/ProjectInfoFactory.cs b/build/tasks/ProjectModel/ProjectInfoFactory.cs
index 5c739f1784..2acf90be1c 100644
--- a/build/tasks/ProjectModel/ProjectInfoFactory.cs
+++ b/build/tasks/ProjectModel/ProjectInfoFactory.cs
@@ -88,6 +88,7 @@ namespace RepoTasks.ProjectModel
var globalProps = new Dictionary()
{
["DesignTimeBuild"] = "true",
+ ["ExcludeRestorePackageImports"] = "true",
};
var project = new Project(xml,
diff --git a/scripts/UpdateDependencies.ps1 b/scripts/UpdateDependencies.ps1
new file mode 100644
index 0000000000..92b9737a6f
--- /dev/null
+++ b/scripts/UpdateDependencies.ps1
@@ -0,0 +1,68 @@
+#!/usr/bin/env pwsh -c
+<#
+.PARAMETER BuildXml
+ The URL or file path to a build.xml file that defines package versions to be used
+#>
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory = $true)]
+ $BuildXml
+)
+
+$ErrorActionPreference = 'Stop'
+Import-Module -Scope Local -Force "$PSScriptRoot/common.psm1"
+Set-StrictMode -Version 1
+
+$depsPath = Resolve-Path "$PSScriptRoot/../build/dependencies.props"
+[xml] $dependencies = LoadXml $depsPath
+
+if ($BuildXml -like 'http*') {
+ $url = $BuildXml
+ New-Item -Type Directory "$PSScriptRoot/../obj/" -ErrorAction Ignore
+ $BuildXml = "$PSScriptRoot/../obj/build.xml"
+ Write-Verbose "Downloading from $url to $BuildXml"
+ Invoke-WebRequest -OutFile $BuildXml $url
+}
+
+[xml] $remoteDeps = LoadXml $BuildXml
+$count = 0
+
+$variables = @{}
+
+foreach ($package in $remoteDeps.SelectNodes('//Package')) {
+ $packageId = $package.Id
+ $packageVersion = $package.Version
+ $varName = PackageIdVarName $packageId
+ Write-Verbose "Found {id: $packageId, version: $packageVersion, varName: $varName }"
+
+ if ($variables[$varName]) {
+ $variables[$varName] += $packageVersion
+ } else {
+ $variables[$varName] = @($packageVersion)
+ }
+}
+
+foreach ($varName in ($variables.Keys | sort)) {
+ $packageVersions = $variables[$varName]
+ if ($packageVersions.Length -gt 1){
+ Write-Warning "Skipped $varName. Multiple version found. { $($packageVersions -join ', ') }."
+ continue
+ }
+
+ $packageVersion = $packageVersions | Select-Object -First 1
+
+ $depVarNode = $dependencies.SelectSingleNode("//PropertyGroup/$varName")
+ if ($depVarNode -and $depVarNode.InnerText -ne $packageVersion) {
+ $depVarNode.InnerText = $packageVersion
+ $count++
+ Write-Host -f DarkGray " Updating $varName to $packageVersion"
+ }
+}
+
+if ($count -gt 0) {
+ Write-Host -f Cyan "Updating $count version variables in $depsPath"
+ SaveXml $dependencies $depsPath
+}
+else {
+ Write-Host -f Green "No changes found"
+}
diff --git a/scripts/common.psm1 b/scripts/common.psm1
index 51952b3431..d1d493eaf0 100644
--- a/scripts/common.psm1
+++ b/scripts/common.psm1
@@ -21,25 +21,38 @@ function Invoke-Block([scriptblock]$cmd) {
function Get-Submodules {
param(
[Parameter(Mandatory = $true)]
- [string]$RepoRoot
+ [string]$RepoRoot,
+ [switch]$Shipping
)
- Invoke-Block { & git submodule update --init } | Out-Null
-
$moduleConfigFile = Join-Path $RepoRoot ".gitmodules"
$submodules = @()
- Get-ChildItem "$RepoRoot/modules/*" -Directory | % {
+ [xml] $submoduleConfig = Get-Content "$RepoRoot/build/submodules.props"
+ $repos = $submoduleConfig.Project.ItemGroup.Repository | % { $_.Include }
+
+ Get-ChildItem "$RepoRoot/modules/*" -Directory `
+ | ? { (-not $Shipping) -or $($repos -contains $($_.Name)) -or $_.Name -eq 'Templating' } `
+ | % {
Push-Location $_ | Out-Null
Write-Verbose "Attempting to get submodule info for $_"
+
+ if (Test-Path 'version.props') {
+ [xml] $versionXml = Get-Content 'version.props'
+ $versionPrefix = $versionXml.Project.PropertyGroup.VersionPrefix
+ } else {
+ $versionPrefix = ''
+ }
+
try {
- $data = @{
+ $data = [PSCustomObject] @{
path = $_
module = $_.Name
commit = $(git rev-parse HEAD)
newCommit = $null
changed = $false
branch = $(git config -f $moduleConfigFile --get submodule.modules/$($_.Name).branch )
+ versionPrefix = $versionPrefix
}
$submodules += $data
@@ -51,3 +64,44 @@ function Get-Submodules {
return $submodules
}
+
+function SaveXml([xml]$xml, [string]$path) {
+ Write-Verbose "Saving to $path"
+ $ErrorActionPreference = 'stop'
+
+ $settings = New-Object System.XML.XmlWriterSettings
+ $settings.OmitXmlDeclaration = $true
+ $settings.Encoding = New-Object System.Text.UTF8Encoding( $true )
+ $writer = [System.XML.XMLTextWriter]::Create($path, $settings)
+ $xml.Save($writer)
+ $writer.Close()
+}
+
+function LoadXml([string]$path) {
+ Write-Verbose "Reading from $path"
+
+ $ErrorActionPreference = 'stop'
+ $obj = new-object xml
+ $obj.PreserveWhitespace = $true
+ $obj.Load($path)
+ return $obj
+}
+
+function PackageIdVarName([string]$packageId) {
+ $canonicalVarName = ''
+ $upperCaseNext = $true
+ for ($i = 0; $i -lt $packageId.Length; $i++) {
+ $ch = $packageId[$i]
+ if (-not [System.Char]::IsLetterOrDigit(($ch))) {
+ $upperCaseNext = $true
+ continue
+ }
+ if ($upperCaseNext) {
+ $ch = [System.Char]::ToUpperInvariant($ch)
+ $upperCaseNext = $false
+ }
+ $canonicalVarName += $ch
+ }
+ $canonicalVarName += "PackageVersion"
+ return $canonicalVarName
+}