Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 2, 2025

Summary

Adds breaking change documentation for .NET 10 RC 1 where ToolCommandName is only set when PackAsTool is true, not for all projects.

Fixes #51739

Changes:

  • Created breaking change article at docs/core/compatibility/sdk/10.0/toolcommandname-not-set.md
  • Updated TOC and version index (10.0.md) under SDK and MSBuild section
  • Classified as source-incompatible change

Recommended actions documented:

<!-- Option 1: Set explicitly -->
<PropertyGroup>
  <ToolCommandName>your-command-name</ToolCommandName>
</PropertyGroup>

<!-- Option 2: Convert to tool -->
<PropertyGroup>
  <PackAsTool>true</PackAsTool>
</PropertyGroup>
Original prompt

This section details on the original issue you should resolve

<issue_title>[Breaking change]: ToolCommandName is not set for non tool packages</issue_title>
<issue_description>### Description

We used to always set ToolCommandName for projects when packaged or built, regardless of whether or not they were a tool package. Now we only set it if PackAsTool is true and the package is a tool. Users may be surprised that this property is no longer set.

Please read the conversation in dotnet/sdk#51739

Version

.NET 10 RC 1

Previous behavior

ToolCommandName was always set.

New behavior

ToolCommandName is only set if its a tool package project.

Type of breaking change

  • Binary incompatible: Existing binaries might encounter a breaking change in behavior, such as failure to load or execute, and if so, require recompilation.
  • Source incompatible: When recompiled using the new SDK or component or to target the new runtime, existing source code might require source changes to compile successfully.
  • Behavioral change: Existing binaries might behave differently at run time.

Reason for change

ToolCommandName does not make sense for non tool projects.

Recommended action

If you rely on this being set, please set the property explicitly or convert your project to a tool.

Feature area

SDK

Affected APIs

No response</issue_description>

Comments on the Issue (you are @copilot in this section)

Custom agent used: breakingchange-creator
Agent that specializes in creating breaking change articles


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.


Internal previews

📄 File 🔗 Preview link
docs/core/compatibility/10.0.md Breaking changes in .NET 10
docs/core/compatibility/sdk/10.0/toolcommandname-not-set.md ToolCommandName not set for non-tool packages
docs/core/compatibility/toc.yml docs/core/compatibility/toc

Copilot AI changed the title [WIP] Fix ToolCommandName not set for non-tool packages Document breaking change: ToolCommandName no longer set for non-tool packages Dec 2, 2025
Copilot finished work on behalf of gewarren December 2, 2025 21:42
Copilot AI requested a review from gewarren December 2, 2025 21:42
@gewarren gewarren marked this pull request as ready for review December 2, 2025 22:06
@gewarren gewarren requested a review from a team as a code owner December 2, 2025 22:06
Copilot AI review requested due to automatic review settings December 2, 2025 22:06
@gewarren gewarren requested a review from nagilson December 2, 2025 22:08
@gewarren gewarren enabled auto-merge (squash) December 2, 2025 22:08
Copilot finished reviewing on behalf of gewarren December 2, 2025 22:10
Copy link
Contributor

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 documents a breaking change in .NET 10 RC 1 where the ToolCommandName MSBuild property is no longer automatically set for all projects, but only for projects that have PackAsTool set to true.

Key changes:

  • Created comprehensive breaking change documentation following the standard template
  • Updated TOC and version index to include the new breaking change article
  • Provided clear workarounds for affected users

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
docs/core/compatibility/sdk/10.0/toolcommandname-not-set.md New breaking change article documenting the behavioral change and recommended actions
docs/core/compatibility/toc.yml Added TOC entry for the new breaking change under SDK and MSBuild section
docs/core/compatibility/10.0.md Added version index entry categorizing the change as source incompatible

@gewarren gewarren merged commit 391d34f into main Dec 3, 2025
11 checks passed
@gewarren gewarren deleted the copilot/fix-toolcommandname-setting branch December 3, 2025 19:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Breaking change]: ToolCommandName is not set for non tool packages

3 participants