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