microsoft / microsoft/winget-pkgs

[New Feature]: Split Dotnet packages by architecture

Open
#374,599 10 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Issue-Feature
Dominant language
No language data
Stars
11.1k
Forks
9.7k
Avg merge
1h 32m
Merged PRs (30d)
616

Description

### Description of the new feature/enhancement

Hi,

I was wondering if we could split packages per architecture:
- Microsoft.DotNet.DesktopRuntime.8
- Microsoft.DotNet.DesktopRuntime.10
- Microsoft.DotNet.Runtime.8
- Microsoft.DotNet.Runtime.10
- and other "DotNets"

Basically do similar to what has been done to VCRedist, e.g.
- Microsoft.VCRedist.2015+.arm64
- Microsoft.VCRedist.2015+.x86
- Microsoft.VCRedist.2015+.x64

Many Microsoft.DotNet* packages have issues with side-installation of packages with different architecture:
- sometimes updates of singular packages don't work correctly
- can't uninstall singular package without uninstalling second one with --all-versions
- sometimes installation is also not possible

Additionally it's not possible to install any Dotnet with x86 using DSC as there is option for that. Splitting packages would resolve this issue as architecture would be defined in the name itself.

For all those issues there were reported numerous similar issues, to this repo and winget-cli
- [#5731](https://github.com/microsoft/winget-cli/issues/5731)
- [#5729](https://github.com/microsoft/winget-cli/issues/5729)
- [#4883](https://github.com/microsoft/winget-cli/issues/4883)
- [#3010](https://github.com/microsoft/winget-cli/issues/3010)
- [#5722](https://github.com/microsoft/winget-cli/issues/5722)
- [#5721](https://github.com/microsoft/winget-cli/issues/5721)
- #117876
- #183481

I believe that the best option would be to implement reliably identify architecture, and [add architecture options for winget-cli](https://github.com/microsoft/winget-cli/issues/3401). But issues against that were reported 3 years ago and where still not resolved.
Maybe in the meantime we could just create copy of those packages with architecture in the name?
We could still leave old ones and give them updates, but make copy and recommend people to use new ones.

If there is help needed with this implementation I can do that

### Proposed technical implementation details (optional)

_No response_

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points. Start by reviewing the linked winget-cli issues and the existing VCRedist architecture-specific package examples; done would require an agreed, reliable approach for separate DotNet architecture packages and their installation, update, and removal behavior.

Written by the indexing model from the issue text.

Assessment

Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.