From b7c61128af91f3cd5fc08ee385b84361110c87c5 Mon Sep 17 00:00:00 2001 From: John Luo Date: Mon, 12 Feb 2018 19:55:19 -0800 Subject: [PATCH] Resolve portable pdbs from symbols packages --- build/SharedFx.props | 2 +- build/SharedFx.targets | 70 +++++++++++++++---- build/tasks/RepoTasks.tasks | 1 + build/tasks/ResolveSymbolsRecursivePath.cs | 29 ++++++++ .../SharedFrameworkSymbols.nuspec | 3 +- 5 files changed, 90 insertions(+), 15 deletions(-) create mode 100644 build/tasks/ResolveSymbolsRecursivePath.cs diff --git a/build/SharedFx.props b/build/SharedFx.props index 4a3267e20d..2c49353da7 100644 --- a/build/SharedFx.props +++ b/build/SharedFx.props @@ -11,7 +11,7 @@ <_DebToolDir>$(MSBuildThisFileDirectory)tools\dotnet-deb-tool-consumer\ <_SharedFxSourceDir>$(RepositoryRoot).deps\Signed\SharedFx\ <_InstallerSourceDir>$(RepositoryRoot).deps\Installers\ - <_SymbolsSourceDir>$(RepositoryRoot).deps\Symbols\ + <_SymbolsSourceDir>$(RepositoryRoot).deps\symbols\ <_DockerRootDir>/opt/code/ <_InstallersOutputDir>$(ArtifactsDir)installers\ diff --git a/build/SharedFx.targets b/build/SharedFx.targets index 589cc66b4d..affdaa4878 100644 --- a/build/SharedFx.targets +++ b/build/SharedFx.targets @@ -284,16 +284,25 @@ - + <_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" /> + + + + + + + @@ -373,7 +382,7 @@ - <_SymbolFiles Include="$(SymbolsWorkDir)**\*.pdb;$(SymbolsWorkDir)**\*.map" /> + <_SymbolFiles Include="$(SymbolsWorkDir)**\*.pdb;$(SymbolsWorkDir)**\*.map;$(SymbolsWorkDir)**\*.dll" /> %(RecursiveDir)%(Filename)%(Extension) @@ -396,17 +405,40 @@ + $(SharedFxCrossGenDirectory)shared\Microsoft.AspNetCore.App\$(PackageVersion)\ + $(SharedFxCrossGenDirectory)shared\Microsoft.AspNetCore.All\$(PackageVersion)\ $(_WorkRoot)Symbols\Microsoft.AspNetCore.App\ $(_WorkRoot)Symbols\Microsoft.AspNetCore.All\ - - - + + + + - + + + + + + + + + @@ -440,10 +480,14 @@ - + --> 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 index fed64a5849..18c0b0e657 100644 --- a/build/tools/templates/SharedFxSymbols/SharedFrameworkSymbols.nuspec +++ b/build/tools/templates/SharedFxSymbols/SharedFrameworkSymbols.nuspec @@ -15,7 +15,8 @@ aspnetcore - + +