Skip to content

How to include MSBUILD dependencies? #337

Closed

Description

@tpetricek

When you get the FSharp.Compiler.Service NuGet package and install it as part of some application on Azure VM, the application will fail, because F# Compiler Service depends on MSBUILD assemblies that are not part of .NET Framework:

  • Microsoft.Build
  • Microsoft.Build.Engine
  • Microsoft.Build.Framework
  • Microsoft.Build.Utilities.v12.0
  • Microsoft.Build.Tasks.v12.0

This is a bit unfortunate, because it measn that FSharp.Compiler.Service will not work on non-dev machines. I'm not sure what the best solution is?

  • Bundle the libraries with FSharp.Compiler.Service NuGet package? (but it's about 5 MB that most people won't need...)
  • Have a NuGet dependency? (if MSBUILD was on NuGet... which I don't think it is)
  • ILMERGE ALL THE THINGS! (that is, just the MSBUILD assemblies using the nice ILMerge tool that sometimes does not crash...)
  • Give up and tell people to install MSBUILD on their deployment machines?

[See also my comment in: https://github.com/fsharp/fsharp/pull/409]

Activity

  1. 7sharp9 commented on Apr 28, 2015

    @7sharp9
    Member

    The msbuild 12 bits are for the project file cracking stuff, but msbuild is also used for reference resolution. Why would that never be installed?

  2. tpetricek commented on Apr 28, 2015

    @tpetricek
    MemberAuthor

    MSBUILD is now (well, for the last 3 years) a part of Visual Studio and so we cannot expect it to be installed...

  3. 7sharp9 commented on Apr 28, 2015

    @7sharp9
    Member
  4. 7sharp9 commented on Apr 28, 2015

    @7sharp9
    Member

    I have a pcl version of FCS that Im working on that has no msbuild dependencies, not yet finished I might add.

  5. dsyme commented on Apr 29, 2015

    @dsyme
    Contributor

    I suppose the appropriate DLLs should be bundled as part of the FCS package for now, that seems reasonable, similar to here: fsharp/fsharp#409. Could you send a PR to adjust?

  6. added a commit that references this issue on Jul 8, 2015
    d52230b
  7. cognociente commented on Sep 25, 2015

    @cognociente

    It seems that the intention here was to add the relevant MSBUILD dependencies/dlls into the FSCS nuget package - this does not seem to have been implemented though as my usage of FSCS via nuget has just downloaded fsharp.compiler.services.dll.

  8. simra commented on Oct 7, 2015

    @simra

    Up-vote for this issue. simra/IfSharp#7.
    I'll try the options suggested in #424.

  9. rneatherway commented on Dec 2, 2015

    @rneatherway
    Member

    This should be addressed by #470.

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

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