diff --git a/Directory.Packages.props b/Directory.Packages.props
index df19d1c9e83..623795280be 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -36,8 +36,6 @@
-
-
diff --git a/Documentation/ArcadeSdk.md b/Documentation/ArcadeSdk.md
index 5ff86313be4..1f03dca5516 100644
--- a/Documentation/ArcadeSdk.md
+++ b/Documentation/ArcadeSdk.md
@@ -986,11 +986,6 @@ When `UsingToolNuGetRepack` is true _shipping_ packages are repackaged as releas
Set to `true` in projects that build Visual Studio Build (CoreXT) packages. These packages are non-shipping, but their content is shipping. They are inserted into and referenced from the internal DevDiv `VS` repository.
-### `PublishWindowsPdb` (bool)
-
-`true` (default) if the PDBs produced by the project should be converted to Windows PDB and published to Microsoft symbol servers.
-Set to `false` to override the default (uncommon).
-
### `ApplyNgenOptimization` (`partial`, `full` or empty)
Set to `partial` or `full` in a shipping project to require IBC optimization data to be available for the project and embed them into the binary during official build. The value of `partial` indicates partial NGEN, whereas `full` means full NGEN optimization.
diff --git a/Documentation/RepoToolset/MigrationToArcade.md b/Documentation/RepoToolset/MigrationToArcade.md
index 59ee1e29dc7..9033fc051eb 100644
--- a/Documentation/RepoToolset/MigrationToArcade.md
+++ b/Documentation/RepoToolset/MigrationToArcade.md
@@ -19,7 +19,6 @@ Below is a list of changes required to migrate to Arcade.
searchPattern: `artifacts\$(BuildConfiguration)\packages\*Shipping\*.nupkg`
3. Remove PublishOutputToSymStore property from projects if your projects used it before.
- By default Windows PDBs for all shipping projects are published to symbol server.
- - PublishWindowsPdb property can be used to suppress publishing Windows PDB for the project.
4. Review usages of $(PackageOutputPath)
Replace with `$(ArtifactsShippingPackagesDir)` or `$(ArtifactsNonShippingPackagesDir)`.
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index e97548a1c09..dbbf8f17eff 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -50,14 +50,6 @@
https://github.com/dotnet/roslyn
e091728607ca0fc9efca55ccfb3e59259c6b5a0a
-
- https://github.com/dotnet/symreader-converter
- c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0
-
-
- https://github.com/dotnet/symreader-converter
- c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0
-
https://github.com/dotnet/diagnostics
3007744d190d50dc586acdb761c4ce6c0d5bdc15
diff --git a/eng/Versions.props b/eng/Versions.props
index b3959463347..4fdf0f675e1 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -89,9 +89,6 @@
2.22.0
13.0.3
-
- 1.1.0-beta2-19575-01
- 1.1.0-beta2-19575-01
8.0.0-preview.24461.2
diff --git a/src/Microsoft.DotNet.Arcade.Sdk/Microsoft.DotNet.Arcade.Sdk.csproj b/src/Microsoft.DotNet.Arcade.Sdk/Microsoft.DotNet.Arcade.Sdk.csproj
index baebf769c53..69af7062a7a 100644
--- a/src/Microsoft.DotNet.Arcade.Sdk/Microsoft.DotNet.Arcade.Sdk.csproj
+++ b/src/Microsoft.DotNet.Arcade.Sdk/Microsoft.DotNet.Arcade.Sdk.csproj
@@ -66,7 +66,6 @@
$(PackageVersion)
$(MicrosoftNetCompilersToolsetVersion)
- $(MicrosoftDiaSymReaderPdb2PdbVersion)
$(PackageVersion)
$(MicrosoftSymbolUploaderBuildTaskVersion)
$(MicrosoftTemplateEngineAuthoringTasksVersion)
diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Imports.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/Imports.targets
index 2bbcc145865..4a1cefab30d 100644
--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/Imports.targets
+++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Imports.targets
@@ -17,6 +17,5 @@
-
diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj
index ad9f28f9abc..2e392427159 100644
--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj
+++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Publish.proj
@@ -148,11 +148,6 @@
-
diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishArtifactsInManifest.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishArtifactsInManifest.proj
index dbd512d4958..9e3c0cec80d 100644
--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishArtifactsInManifest.proj
+++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishArtifactsInManifest.proj
@@ -71,8 +71,6 @@
- InternalInstallersTargetStaticFeedKey
- InternalChecksumsTargetStaticFeed
- InternalChecksumsTargetStaticFeedKey
-
- NOTE: For symbol publishing using V3, ConvertPortablePdbsToWindowsPdbs is always set to false, because this is an expensive task so this is done in the staging pipeline post signing.
-->
diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishToSymbolServers.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishToSymbolServers.proj
index 75780421b97..afd9985e09f 100644
--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishToSymbolServers.proj
+++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishToSymbolServers.proj
@@ -38,9 +38,6 @@
-
3650
true
@@ -49,8 +46,6 @@
false
true
false
- false
- false
+ Condition="$(PublishToSymbolServer)" />
diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/SymStore.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/SymStore.targets
deleted file mode 100644
index a32bf6dec13..00000000000
--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/SymStore.targets
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- <_SymbolProducerTarget Condition="'$(Language)' == 'C++'">BuildLink
- <_SymbolProducerTarget Condition="'$(Language)' != 'C++'">CoreBuild
-
-
-
-
-
-
-
- <_TargetPdbPath />
- <_TargetPdbPath Condition="'$(DebugType)' != 'embedded'">$([System.IO.Path]::ChangeExtension($(TargetPath), '.pdb'))
- <_BuildsPortablePdb>false
- <_BuildsPortablePdb Condition="'$(DebugType)' == 'portable' or '$(DebugType)' == 'embedded'">true
-
- <_SymStoreTargetFramework>$(TargetFramework)
- <_SymStoreOutputDir>$(ArtifactsSymStoreDirectory)$(OutDirName)\$(_SymStoreTargetFramework)\
- <_SymStoreOutputDir Condition="'$(PlatformName)' != 'AnyCPU'">$(_SymStoreOutputDir)$(PlatformName)\
-
- <_SymStorePdbPath>$(_SymStoreOutputDir)$(TargetName).pdb
-
-
- true
-
-
-
-
-
-
-
- <_PdbConverterPath>$(NuGetPackageRoot)microsoft.diasymreader.pdb2pdb\$(MicrosoftDiaSymReaderPdb2PdbVersion)\tools\Pdb2Pdb.exe
- <_PdbConverterCommandLineArgs>"$(TargetPath)" /out "$(_SymStorePdbPath)" /srcsvrvar SRC_INDEX=public
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Microsoft.DotNet.Build.Tasks.Feed/Microsoft.DotNet.Build.Tasks.Feed.csproj b/src/Microsoft.DotNet.Build.Tasks.Feed/Microsoft.DotNet.Build.Tasks.Feed.csproj
index bc70dea1458..52392e477da 100644
--- a/src/Microsoft.DotNet.Build.Tasks.Feed/Microsoft.DotNet.Build.Tasks.Feed.csproj
+++ b/src/Microsoft.DotNet.Build.Tasks.Feed/Microsoft.DotNet.Build.Tasks.Feed.csproj
@@ -33,9 +33,6 @@
the symbol publishing doesn't run on framework anyway (this project has a throwing stub for .NET framework in that path
due to the reliance in maestro). Until we really need to multitarget, this is the better path. -->
-
-
diff --git a/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs b/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
index 083a54dbc24..b93dec6f217 100644
--- a/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
+++ b/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs
@@ -658,8 +658,6 @@ Task CreatePublishSymbolHelper(string symbolPublishingExclus
TempSymbolsAzureDevOpsOrg,
creds,
packageFileExcludeList: exclusions,
- convertPortablePdbs: false,
- treatPdbConversionIssuesAsInfo: false,
pdbConversionTreatAsWarning: null,
dotnetInternalPublishSpecialClrFiles: publishSpecialClrFiles,
verboseClient: true,
diff --git a/src/Microsoft.DotNet.Internal.SymbolHelper/Microsoft.DotNet.Internal.SymbolHelper.csproj b/src/Microsoft.DotNet.Internal.SymbolHelper/Microsoft.DotNet.Internal.SymbolHelper.csproj
index 9b2bc487369..288d3836643 100644
--- a/src/Microsoft.DotNet.Internal.SymbolHelper/Microsoft.DotNet.Internal.SymbolHelper.csproj
+++ b/src/Microsoft.DotNet.Internal.SymbolHelper/Microsoft.DotNet.Internal.SymbolHelper.csproj
@@ -7,18 +7,10 @@
-
-
-
-
+
diff --git a/src/Microsoft.DotNet.Internal.SymbolHelper/SymbolPublisherOptions.cs b/src/Microsoft.DotNet.Internal.SymbolHelper/SymbolPublisherOptions.cs
index 0d4dbb8dc62..d2cc68d215d 100644
--- a/src/Microsoft.DotNet.Internal.SymbolHelper/SymbolPublisherOptions.cs
+++ b/src/Microsoft.DotNet.Internal.SymbolHelper/SymbolPublisherOptions.cs
@@ -17,8 +17,6 @@ public sealed class SymbolPublisherOptions
/// The Azure DevOps organization to publish to.
/// The token credential with symbol write scope.
/// The list of package files to exclude from package publishing. Doesn't contribute to loose file publishing. Empty by default.
- /// A flag indicating whether to convert portable PDBs to windows PDBs. Defaults to false.
- /// A flag indicating whether to treat PDB conversion issues as informational rather than warn/error. Defaults to false.
/// The list of PDB conversion issue IDs to treat as warnings. Defaults to empty.
/// Symbol client per-operation timeout in minutes. Defaults to 10 mins.
/// A flag indicating whether to publish CLR files under their special diagnostic indexes. Defaults to false.
@@ -28,8 +26,6 @@ public SymbolPublisherOptions(
string azdoOrg,
TokenCredential credential,
IEnumerable? packageFileExcludeList = null,
- bool convertPortablePdbs = false,
- bool treatPdbConversionIssuesAsInfo = false,
IEnumerable? pdbConversionTreatAsWarning = null,
uint operationTimeoutInMins = 10,
bool dotnetInternalPublishSpecialClrFiles = false,
@@ -39,8 +35,6 @@ public SymbolPublisherOptions(
AzdoOrg = azdoOrg is not null and not "" ? azdoOrg : throw new ArgumentException("Organization can't be null or empty", nameof(azdoOrg));
Credential = credential ?? throw new ArgumentNullException(nameof(credential));
PackageFileExcludeList = packageFileExcludeList is null ? FrozenSet.Empty : packageFileExcludeList.ToFrozenSet();
- ConvertPortablePdbs = convertPortablePdbs;
- TreatPdbConversionIssuesAsInfo = treatPdbConversionIssuesAsInfo;
PdbConversionTreatAsWarning = pdbConversionTreatAsWarning is null ? FrozenSet.Empty : pdbConversionTreatAsWarning.ToFrozenSet();
OperationTimeoutInMins = operationTimeoutInMins;
DotnetInternalPublishSpecialClrFiles = dotnetInternalPublishSpecialClrFiles;
@@ -63,16 +57,6 @@ public SymbolPublisherOptions(
///
public FrozenSet PackageFileExcludeList { get; }
- ///
- /// A flag indicating whether the client should try to convert portable PDBs to classic on upload.
- ///
- public bool ConvertPortablePdbs { get; }
-
- ///
- /// A flag indicating whether to treat PDB conversion issues as information.
- ///
- public bool TreatPdbConversionIssuesAsInfo { get; }
-
///
/// List of PDB conversion issue IDs to treat as warnings.
///
diff --git a/src/Microsoft.DotNet.Internal.SymbolHelper/SymbolUploadHelper.cs b/src/Microsoft.DotNet.Internal.SymbolHelper/SymbolUploadHelper.cs
index a918f0e0317..aaa13709871 100644
--- a/src/Microsoft.DotNet.Internal.SymbolHelper/SymbolUploadHelper.cs
+++ b/src/Microsoft.DotNet.Internal.SymbolHelper/SymbolUploadHelper.cs
@@ -13,7 +13,6 @@
using System.Threading;
using System.Threading.Tasks;
using Azure.Core;
-using Microsoft.DiaSymReader.Tools;
using Microsoft.SymbolStore;
namespace Microsoft.DotNet.Internal.SymbolHelper;
@@ -26,12 +25,10 @@ namespace Microsoft.DotNet.Internal.SymbolHelper;
/// can be finalized with some TTL if all uploads. Otherwise, if assets fail to upload, the request can be
/// deleted.
/// There's a few options for the helper that can be controlled by the passed in,
-/// notably the ability to convert portable PDBs to Windows PDBs and the ability to generate a special manifest
-/// for the official runtime builds.
+/// notably the ability to generate a special manifest for the official runtime builds.
///
public sealed class SymbolUploadHelper
{
- public const string ConversionFolderName = "_convertedPdbs";
private const string AzureDevOpsResource = "499b84ac-1321-427f-aa17-267ca6975798";
private const string PathEnvVarName = "AzureDevOpsToken";
private static readonly FrozenSet s_validExtensions = FrozenSet.ToFrozenSet(["", ".exe", ".dll", ".pdb", ".so", ".dbg", ".dylib", ".dwarf", ".r2rmap"]);
@@ -41,13 +38,10 @@ public sealed class SymbolUploadHelper
private readonly TokenCredential _credential;
private readonly string _commonArgs;
private readonly string _symbolToolPath;
- private readonly PdbConverter? _pdbConverter;
private readonly uint _symbolToolTimeoutInMins;
private readonly bool _shouldGenerateManifest;
- private readonly bool _shouldConvertPdbs;
private readonly bool _isDryRun;
private readonly FrozenSet _packageFileExclusions;
- private readonly bool _treatPdbConversionIssuesAsInfo;
///
/// Initializes a new instance of the class.
@@ -90,32 +84,8 @@ internal SymbolUploadHelper(ITracer logger, string symbolToolPath, SymbolPublish
// All other builds should not set this flag in the interest of perf.
_shouldGenerateManifest = options.DotnetInternalPublishSpecialClrFiles;
- // This is an extremely slow operation and should be used sparingly. We usually only want to do this
- // in the staging/release pipeline, not in the nightly build pipeline.
- _shouldConvertPdbs = options.ConvertPortablePdbs;
_isDryRun = options.IsDryRun;
_packageFileExclusions = options.PackageFileExcludeList;
-
- if (_shouldConvertPdbs)
- {
- _treatPdbConversionIssuesAsInfo = options.TreatPdbConversionIssuesAsInfo;
- _pdbConverter = new PdbConverter(diagnostic =>
- {
- string message = diagnostic.ToString();
- if (_treatPdbConversionIssuesAsInfo)
- {
- _globalTracer.Information(message);
- }
- else if (options.PdbConversionTreatAsWarning.Contains((int)diagnostic.Id))
- {
- _globalTracer.Warning(message);
- }
- else
- {
- _globalTracer.Error(message);
- }
- });
- }
}
public async Task GetClientDiagnosticInfo()
@@ -142,8 +112,7 @@ public async Task CreateRequest(string? name)
}
///
- /// Adds directory to a symbol request. This will convert portable PDBs as long as the PE is next to the
- /// PDB and the options specified conversion.
+ /// Adds directory to a symbol request.
///
/// The name of the symbol request to append to. Must be non-finalized.
/// The files to add.
@@ -152,24 +121,8 @@ public async Task AddDirectory(string? name, string pathToAdd)
{
ScopedTracer logger = _tracerFactory.CreateTracer(nameof(AddDirectory));
SymbolRequestHelpers.ValidateRequestName(name, logger);
- try
- {
- if (_shouldConvertPdbs)
- {
- ConvertPortablePdbsInDirectory(logger, pathToAdd);
- }
- return await AddDirectoryCore(name!, pathToAdd, manifestPath: null, logger).ConfigureAwait(false);
- }
- finally
- {
- string convertedFolder = GetConvertedPdbFolder(pathToAdd);
- if (_shouldConvertPdbs && !Directory.Exists(convertedFolder))
- {
- logger.Information("Cleaning up symbol conversion directory {0}", convertedFolder);
- try { Directory.Delete(convertedFolder, recursive: true); } catch { }
- }
- }
+ return await AddDirectoryCore(name!, pathToAdd, manifestPath: null, logger).ConfigureAwait(false);
}
///
@@ -296,11 +249,6 @@ private async Task AddPackageToRequestCore(string name, string packagePath,
await entryStream.CopyToAsync(entryFile).ConfigureAwait(false);
}
- if (_shouldConvertPdbs)
- {
- ConvertPortablePdbsInDirectory(logger, packageExtractDir);
- }
-
string? manifest = null;
if (_shouldGenerateManifest)
{
@@ -350,54 +298,6 @@ bool ShouldIndexPackageFile(string relativeFilePath)
}
}
- private void ConvertPortablePdbsInDirectory(ScopedTracer logger, string filesDir)
- {
- Action logWarning = _treatPdbConversionIssuesAsInfo ? logger.Information : logger.Error;
- string convertedPdbFolder = GetConvertedPdbFolder(filesDir);
- _ = Directory.CreateDirectory(convertedPdbFolder);
- foreach (string file in Directory.EnumerateFiles(filesDir, "*.pdb", SearchOption.AllDirectories))
- {
- using Stream pdbStream = File.OpenRead(file);
- if (!PdbConverter.IsPortable(pdbStream))
- {
- continue;
- }
-
- logger.Verbose("Converting {0} to classic PDB format", file);
-
- string pePath = Path.ChangeExtension(file, ".dll");
- // Try to fall back to the framework exe scenario.
- if (!File.Exists(pePath))
- {
- pePath = Path.ChangeExtension(file, ".exe");
- }
-
- if (!File.Exists(pePath))
- {
- logWarning($"Conversion error: could not find matching PE file for {file}");
- continue;
- }
-
- string convertedPdbPath = Path.Combine(convertedPdbFolder, Path.GetFileName(file));
-
- try
- {
- using Stream peStream = File.OpenRead(pePath);
- using Stream convertedPdbStream = File.Create(convertedPdbPath);
- _pdbConverter!.ConvertPortableToWindows(peStream, pdbStream, convertedPdbStream);
- }
- catch (Exception ex)
- {
- logWarning($"Conversion error: {ex.Message}");
- continue;
- }
-
- logger.Verbose("Converted successfully to {0}.", convertedPdbPath);
- }
- }
-
- private static string GetConvertedPdbFolder(string filesDir) => Path.Combine(filesDir, ConversionFolderName);
-
private DirectoryInfo CreateTempDirectory()
{
string tempDir = Path.Combine(_workingDir, Path.GetRandomFileName());