Skip to content

Conversation

@hymccord
Copy link
Contributor

Since the packages are built with source link, for a better debugging experience you should either upload the symbol packages to NuGet or distribute the PDBs alongside the application (which you do).

But a user needs to set CopyDebugSymbolFilesFromPackages to true in their build properties.

Changing the PDBs to be embedded will allow debuggers to easily discover them when users want to step into the source.

This PR also enables reproduceable builds by setting the ContinuousIntegrationBuild to true during CI.

Copilot AI review requested due to automatic review settings September 13, 2025 18:18
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR improves debugging experience and build reproducibility by modifying MSBuild properties to embed debugging symbols and enable reproducible builds during CI.

  • Changes debug symbols from separate PDB files to embedded format for easier debugging
  • Enables reproducible builds during CI by setting ContinuousIntegrationBuild to true
  • Removes the need for separate PDB distribution by embedding symbols directly in assemblies

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
WikiClientLibrary.Packages.props Switches from separate PDB files to embedded debug symbols and enables untracked source embedding
WikiClientLibrary.Commons.props Adds ContinuousIntegrationBuild property for reproducible CI builds

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@CXuesong
Copy link
Owner

Thanks for the PR! I might release the next release much later so probably you can enable CopyDebugSymbolFilesFromPackages before then.

But a user needs to set CopyDebugSymbolFilesFromPackages to true in their build properties.

I've just checked the symbol searching logs and realized the pdb files weren't actually copied to the output folder of downstream projects. This is surprising as I thought it was definitely the case back in the time of .NET Framework.

And I wasn't aware of this until now because I'm still manually building and publishing the WCL packages. This means there are PDB files under the absolute paths of PDB locations stored in the dlls, but only on my PC 😂

Changing the PDBs to be embedded will allow debuggers to easily discover them when users want to step into the source.

Then this is the best we can have for now, until later we have a pipeline to build and publish all the packages so it won't hurt double the packages to upload.

@CXuesong CXuesong merged commit 861ce02 into CXuesong:master Sep 18, 2025
4 checks passed
@hymccord hymccord deleted the feat/embedded-sybmols branch September 19, 2025 01:04
@CXuesong CXuesong self-assigned this Oct 18, 2025
@CXuesong
Copy link
Owner

Published v0.9.0-int.4.

@CXuesong CXuesong added this to the v0.9.0 milestone Oct 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants