fsprojects / fsprojects/Paket

Paket forces everything to a specific version in App.config

Open
#3,541 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs triage
Dominant language
F#
Stars
2.1k
Forks
528
Avg merge
1d 12m
Merged PRs (30d)
54

Description

Description

Is there a way to make Paket do redirect only up to a version and not force everything to a specific version. This is the generated section in App.config today:

<Paket>True</Paket>
    <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="2.6.10.0" />

We would like it to be like this:

<Paket>True</Paket>
    <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />

We have a bugg today due to this. It seems that when you use a WPF app the XAML parser inside visualstudio also goes to this old version and then we have a bug on windows 10 machines. When we change the config file manually it works. The strange thing is that We can't see any transitive dependency to System.Runtime in the paket.lock file but even so Paket sets up System.Runtime in the config file.

  1. Is there a way to make paket create what we want?

  2. Why does paket setup System.Runtime in App.config even if it has not visualized any transient dependency to System.Runtime?

Best Regards

Per Rodstrom

Contributor guide

No contributing guide indexed for this repository

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

Start by tracing Paket's App.config binding-redirect generation and how System.Runtime is selected despite the paket.lock contents. Compare the generated oldVersion range with the requested bounded range, then use the existing configuration-generation tests to verify the behavior and explain why the dependency is included.

Written by the indexing model from the issue text.

Assessment

Domain
build-system, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.