diff --git a/README.md b/README.md
index 42a873bd43..38803645b5 100644
--- a/README.md
+++ b/README.md
@@ -57,7 +57,7 @@ Microsoft.AspNetCore | [![][metapackage-myget-badge]][metapackage-m
[linux-x64-tar]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/master/aspnetcore-runtime-latest-linux-x64.tar.gz
[osx-x64-tar]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/master/aspnetcore-runtime-latest-osx-x64.tar.gz
[debian-x64-deb]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/master/aspnetcore-runtime-latest-x64.deb
-[redhat-x64-rpm]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/master/aspnetcore-runtime-latest-rhel.7-x64.rpm
+[redhat-x64-rpm]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/master/aspnetcore-runtime-latest-x64.rpm
[badge-rel-21]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.1/aspnetcore-runtime-win-x64-version-badge.svg
[win-x64-zip-rel-21]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.1/aspnetcore-runtime-latest-win-x64.zip
@@ -67,7 +67,7 @@ Microsoft.AspNetCore | [![][metapackage-myget-badge]][metapackage-m
[linux-x64-tar-rel-21]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.1/aspnetcore-runtime-latest-linux-x64.tar.gz
[osx-x64-tar-rel-21]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.1/aspnetcore-runtime-latest-osx-x64.tar.gz
[debian-x64-deb-rel-21]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.1/aspnetcore-runtime-latest-x64.deb
-[redhat-x64-rpm-rel-21]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.1/aspnetcore-runtime-latest-rhel.7-x64.rpm
+[redhat-x64-rpm-rel-21]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.1/aspnetcore-runtime-latest-x64.rpm
Platform | Latest (dev branch)
![][badge-master] | release/2.1
![][badge-rel-21]
:---------------------|:----------------------------------------------------------------|:-------------------------------------------------------------------------
diff --git a/build/AzureIntegration.targets b/build/AzureIntegration.targets
index 35b11a7ceb..7cf8a507fb 100644
--- a/build/AzureIntegration.targets
+++ b/build/AzureIntegration.targets
@@ -3,9 +3,10 @@
$(MSBuildThisFileDirectory)..\modules\AzureIntegration\
-
+
+ AspNetUniverseBuildOffline=true;
RepositoryRoot=$(AzureIntegrationProjectRoot);
DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);
DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);
diff --git a/build/Publish.targets b/build/Publish.targets
index ad3286a212..f810dade57 100644
--- a/build/Publish.targets
+++ b/build/Publish.targets
@@ -64,17 +64,10 @@
nuGetPackagesArchive-$(PackageVersion).lzma
aspnetcore-runtime-$(PackageVersion)
aspnetcore-runtime-latest
- aspnetcore-runtime-symbols-$(PackageVersion)
aspnetcore-runtime-internal-$(PackageVersion)
-
-
- $(BlobBasePath)$(SymbolsArchiveBaseFileName)-%(RuntimeSymbolsArchive.Identity)%(RuntimeSymbolsArchive.FileExt)
- ShipInstaller=dotnetcli
-
-
$(BlobBasePath)$(PackageArchiveFileName)
diff --git a/build/SharedFx.props b/build/SharedFx.props
index 2f35fd7778..2c49353da7 100644
--- a/build/SharedFx.props
+++ b/build/SharedFx.props
@@ -11,6 +11,7 @@
<_DebToolDir>$(MSBuildThisFileDirectory)tools\dotnet-deb-tool-consumer\
<_SharedFxSourceDir>$(RepositoryRoot).deps\Signed\SharedFx\
<_InstallerSourceDir>$(RepositoryRoot).deps\Installers\
+ <_SymbolsSourceDir>$(RepositoryRoot).deps\symbols\
<_DockerRootDir>/opt/code/
<_InstallersOutputDir>$(ArtifactsDir)installers\
diff --git a/build/SharedFx.targets b/build/SharedFx.targets
index 3c1502a019..326558dcb3 100644
--- a/build/SharedFx.targets
+++ b/build/SharedFx.targets
@@ -284,9 +284,27 @@
+ <_AppRuntimeAssemblies Include="@(AppPublishAssemblies)" Condition="'%(AssetType)' == 'runtime'">
+ %(PackageName).%(PackageVersion).symbols.nupkg
+ %(RootDir)%(Directory)%(Filename).pdb
+
+ <_AllRuntimeAssemblies Include="@(AllPublishAssemblies)" Exclude="@(_AppRuntimeAssemblies)" Condition="'%(AssetType)' == 'runtime'">
+ %(PackageName).%(PackageVersion).symbols.nupkg
+ %(RootDir)%(Directory)%(Filename).pdb
+
+
<_AssembliesToCrossgen Include="$(SharedFxIntermediateOutputPath)**\*.dll" />
+
+
+
+
+
+
+
+
+
@@ -303,6 +321,14 @@
+
+
+
+
+
+
+
+
-
+
+
+ runtime.$(SharedFxRID).$(SymbolsNuspecIdSuffix)
+
+
-
-
+ <_SymbolFiles Include="$(SymbolsWorkDir)**\*.pdb;$(SymbolsWorkDir)**\*.map;$(SymbolsWorkDir)**\*.dll" />
+
+ %(RecursiveDir)%(Filename)%(Extension)
+
-
-
+
+
+
+
+ PackageFiles="@(SymbolFiles)"
+ BasePath="$(SymbolsWorkDir)" />
+
+
+
+
+ $(SharedFxCrossGenDirectory)shared\Microsoft.AspNetCore.App\$(PackageVersion)\
+ $(SharedFxCrossGenDirectory)shared\Microsoft.AspNetCore.All\$(PackageVersion)\
+ $(_WorkRoot)Symbols\Microsoft.AspNetCore.App\
+ $(_WorkRoot)Symbols\Microsoft.AspNetCore.All\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SymbolsWorkDir=$(AppSharedFxSymbolsDirectory)
+ $(AppSymbolsArguments);SymbolsNuspecIdSuffix=Microsoft.AspNetCore.App.symbols
+ $(AppSymbolsArguments);Description=Symbol packages for Microsoft.AspNetCore.App shared framework
+ SymbolsWorkDir=$(AllSharedFxSymbolsDirectory)
+ $(AllSymbolsArguments);SymbolsNuspecIdSuffix=Microsoft.AspNetCore.All.symbols
+ $(AllSymbolsArguments);Description=Symbol packages for Microsoft.AspNetCore.All shared framework
+
+
+
+
+
@@ -383,4 +502,5 @@
+
diff --git a/build/SharedFxInstaller.targets b/build/SharedFxInstaller.targets
index 4e57e789a7..f65716b19a 100644
--- a/build/SharedFxInstaller.targets
+++ b/build/SharedFxInstaller.targets
@@ -159,7 +159,7 @@
$(RpmCommonArguments);RpmLicense=$(LicenseType)
$(RpmCommonArguments);RpmInstallerPrefix=$(SharedFxInstallerName);SharedFxArchive=$(SharedFxIntermediateArchiveFilePrefix)-linux-x64.tar.gz
$(RpmCommonArguments);RpmMSummary=$(SharedFxSummary);RpmDescription=$(SharedFxDescription)
- RpmFileSuffix=rhel.7-x64.rpm;RpmInstallRoot=$(InstallRoot)
+ RpmFileSuffix=x64.rpm;RpmInstallRoot=$(InstallRoot)
RpmFileSuffix=rh.rhel.7-x64.rpm;RpmInstallRoot=$(RHInstallRoot)
$(RpmCommonArguments);$(RpmCommonGenericArguments);RpmArguments=$(RpmGenericSharedFxArguments)
diff --git a/build/artifacts.props b/build/artifacts.props
index db577f8932..7a4758a1e6 100644
--- a/build/artifacts.props
+++ b/build/artifacts.props
@@ -48,8 +48,8 @@
-
-
+
+
@@ -71,8 +71,8 @@
-
-
+
+
@@ -89,14 +89,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -118,7 +118,7 @@
-
+
@@ -150,21 +150,23 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
-
-
@@ -239,8 +241,8 @@
-
-
+
+
diff --git a/build/dependencies.props b/build/dependencies.props
index 0c738b654e..ba6f56af5d 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
@@ -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
@@ -147,10 +146,8 @@
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 +209,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/repo.props b/build/repo.props
index 42bc8d2b2f..4a773a8f0a 100644
--- a/build/repo.props
+++ b/build/repo.props
@@ -25,10 +25,6 @@
-
-
-
-
@@ -36,7 +32,7 @@
-
+
diff --git a/build/repo.targets b/build/repo.targets
index 64b63fc490..73a131152e 100644
--- a/build/repo.targets
+++ b/build/repo.targets
@@ -26,7 +26,7 @@
-
+
@@ -100,7 +100,7 @@
-
+
<_LineupPackages Include="@(ExternalDependency)" />
<_LineupPackages Include="%(ArtifactInfo.PackageId)" Version="%(ArtifactInfo.Version)" Condition=" '%(ArtifactInfo.ArtifactType)' == 'NuGetPackage' " />
@@ -201,9 +201,6 @@
-
-
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/build/tasks/RepoTasks.tasks b/build/tasks/RepoTasks.tasks
index 389a0f71f2..e291aa5b66 100644
--- a/build/tasks/RepoTasks.tasks
+++ b/build/tasks/RepoTasks.tasks
@@ -21,6 +21,7 @@
+
diff --git a/build/tasks/ResolveSymbolsRecursivePath.cs b/build/tasks/ResolveSymbolsRecursivePath.cs
new file mode 100644
index 0000000000..21dd795fcd
--- /dev/null
+++ b/build/tasks/ResolveSymbolsRecursivePath.cs
@@ -0,0 +1,29 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System;
+using System.IO;
+using Microsoft.Build.Framework;
+using Microsoft.Build.Utilities;
+using RepoTasks.Utilities;
+
+namespace RepoTasks
+{
+ public class ResolveSymbolsRecursivePath : Task
+ {
+ [Required]
+ [Output]
+ public ITaskItem[] Symbols { get; set; }
+
+ public override bool Execute()
+ {
+ foreach (var symbol in Symbols)
+ {
+ var fullPath = symbol.GetMetadata("PortablePDB");
+ symbol.SetMetadata("SymbolsRecursivePath", fullPath.Substring(fullPath.IndexOf($"{Path.DirectorySeparatorChar}lib{Path.DirectorySeparatorChar}")));
+ }
+
+ return true;
+ }
+ }
+}
diff --git a/build/tools/templates/SharedFxSymbols/SharedFrameworkSymbols.nuspec b/build/tools/templates/SharedFxSymbols/SharedFrameworkSymbols.nuspec
new file mode 100644
index 0000000000..18c0b0e657
--- /dev/null
+++ b/build/tools/templates/SharedFxSymbols/SharedFrameworkSymbols.nuspec
@@ -0,0 +1,22 @@
+
+
+
+ $ID$
+ $VERSION$
+ $DESCRIPTION$
+ Microsoft
+ Microsoft
+ Copyright © Microsoft Corporation
+ https://raw.githubusercontent.com/aspnet/Home/2.0.0/LICENSE.txt
+ https://go.microsoft.com/fwlink/?LinkID=288859
+ https://asp.net
+ true
+ true
+ aspnetcore
+
+
+
+
+
+
+
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
+}