Skip to content

Questions / solutions to deploying local builds, nightlies, and multiple instances of Visual Studio 2017 (nicknames) #3664

@abelbraaksma

Description

@abelbraaksma

Motivation for this question: the instructions say you can run update-vsintegration.cmd and if you want to restore, you can do so by running a Repair using Visual Studio 2017 setup. After I did that, I found out that several files in the deployed directories were still the local-built assemblies, yet others were rolled back correctly.

So, the goal is to collect some more insights, try them out, and if necessary create relevant PR's to fix things, hence /cc @dsyme, @KevinRansom, @cartermp.

We have roughly the following parts:

  • F# SDK tools, this is fsc.exe and fsi.exe and related libraries
  • F# Visual Studio integration, which is the whole of all services, libraries that do the syntax highlighting, handle keystrokes, intellisense and integrate FSI with VS.
  • The test suite, which contains unit tests, stress tests and integration tests

How do these parts fit in inside a typical Visual Studio 2017 installation?

More to the point, this is a brain dump of some questions I have been having the last couple of days or so, while working with the build scripts:

  • Running update-vsintegration.cmd updates the SDK paths, but it does not seem to effect Visual Studio (regardless of its name). How do I get Visual Studio to use the compiled libraries?
  • How can I restore to the previous state?
  • When using VSIXInstall to install/uninstall. If I install multiple times, and I uninstall, what is the expected effect? Do I get the situation back of pre-local (i.e., from whatever the VS2017 setup installed)? What files are replaced?
  • VS2017 can be installed side-by-side (Preview, Enterprise, Code, Community), how do I install to a specific instance?
  • And perhaps most importantly: how can I verify that the following elements are using the local builds? (using Process Explorer works, but is hardly productive)
    • Syntax highlighing, intellisense
    • Debugger
    • The compiler used when I select version F# 4.1 as target
    • The compiler when I select an older version of F#
    • The compiler when I select an older version of .NET
    • The compiler used for portable and .NET Core profiles
    • Version of FSI used
  • The compiler tools can apparently also be installed via NuGet (but I don;'t think this updates the SDK), how do I use this technique to use my local build?

I realize I have often relied on click-and-run installations and never much had to manually adjust compilers and everything, unless for build scripts, but there it is easy enough. As you can see, I have trouble finding out what gets placed where and when and I think this is vital to know exactly, as users will report bugs inadvertently on older versions, or against versions they don't even know they are running.

Part of this is necessarily related to #3645 and #3643.

I'm sure I can find all of this out on my own, and I think I have most parts of the puzzle, but it would be great to verify so that I can update DEVGUIDE.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions