This is part of the Fake.DotNet.MSBuild module.


Functions and values

Function or valueDescription
Signature: string list
Signature: MSBuildEntry list
Signature: Version

Versions of Mono prior to this one have faulty implementations of MSBuild NOTE: in System.Version 5.0 >= is false while >= 5.0 is true...

Signature: string

Tries to detect the right version of MSBuild.

  • On all OS's, we check a MSBuild environment variable which is either
    • a direct path to a file to use, or
    • a directory that contains a file called
      • msbuild on non-Windows systems with mono >=, or
      • xbuild on non-Windows systems with mono <,
      • MSBuild.exe on Windows systems, or
    • a tool that exists on the current PATH
  • In addition, on non-Windows systems we check the current PATH for the following binaries, in this order:
    • Mono >= msbuild, xbuild
    • Mono < xbuild, msbuild
    • This is due to several known issues in the Mono < 5.0 implementation of MSBuild.
  • In addition, on Windows systems we
    • try to read the MSBuild tool location from the AppSettings file using a parameter named MSBuild, and finally
    • if a VisualStudioVersion environment variable is specified, we try to use the specific MSBuild version, matching that Visual Studio version.
Signature: string list
Signature: items:seq<MSBuildEntry> -> Map<string,string list>