Skip to content

Visual Studio selects the highest version of the sdk installed on the machine when executing scripts in FSI #17307

Description

@KevinRansom

This is incorrect behavior, it should select the version of the Sdk that shipped with the VS being executed.

image

Edited:
Okay, the current Fsi behaviour is this, if you start with send to interactive, it uses a global.son when present in the same directory as the script to figure out which Sdk to use.
If you specify nothing it does not use a global.json instead it selects the highest framework installed, which is slightly different to what the Sdk does, it selects the Sdk that was shipped with VS.

I propose changing the no global.json specified mechanism to use the version shipped with that VS. To change the specified VS add a script and include a global.json in the directory containing the script:

When you start an F# interactive session in VS you see this:
image

Activity

  1. added this to the Backlog milestone on Jun 14, 2024
  2. baronfel commented on Jun 14, 2024

    @baronfel
    Member

    That's debatable - any global.json the user may have would also influence SDK selection and therefore the FSI chosen.

  3. vzarytovskii commented on Jun 14, 2024

    @vzarytovskii
    Member

    That's debatable - any global.json the user may have would also influence SDK selection and therefore the FSI chosen.

    This. It should take global json into account. Like it does for building.

  4. KevinRansom commented on Jun 14, 2024

    @KevinRansom
    ContributorAuthor

    @baronfel , @vzarytovskii --- so are you suggesting that what we do now is correct? or perhaps that the actual final implementation requires a more rigourous analysis than is currently described above?

    And could you point me to the description of Visual Studios actual behavior so that I can modify the description above.

    Thanks

    Kevin

  5. KevinRansom commented on Jun 14, 2024

    @KevinRansom
    ContributorAuthor

    image

  6. KevinRansom commented on Jun 14, 2024

    @KevinRansom
    ContributorAuthor

    Okay, the current Fsi behaviour is this, if you start with send to interactive, it uses a global.son when present in the same directory as the script to figure out which Sdk to use.
    If you specify nothing it does not use a global.json instead it selects the highest framework installed, which is slightly different to what the Sdk does, it selects the Sdk that was shipped with VS.

    I propose changing the no global.json specified mechanism to use the version shipped with that VS. To change the specified VS add a script and include a global.json in the directory containing the script:

    When you start an F# interactive session in VS you see this:
    image

  7. added
    Area-VS-FSIVS window and commands for F# Interactive
    Impact-Low(Internal MS Team use only) Describes an issue with limited impact on existing code.
    and removed on Jun 17, 2024
  8. TheAngryByrd commented on Apr 8, 2025

    @TheAngryByrd
    Contributor

    I think this is the same issue as #15492

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

AI-thinks-windows-onlyArea-VS-FSIVS window and commands for F# InteractiveBugImpact-Low(Internal MS Team use only) Describes an issue with limited impact on existing code.

Type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions