Skip to content

v0.8.0 - support old fsproj

Compare
Choose a tag to compare
@enricosada enricosada released this 25 Oct 13:10
· 309 commits to main since this release

add more cli options:

--msbuild => path to msbuild
--dotnetcli => path to dotnet, used for "dotnet msbuild"
--msbuild-host => what msbuild host to run, to force specific or auto (oldsdk/dotnetsdk). By default for oldsdk is msbuild and dotnetsdk is dotnet

Old fsproj parser

Use msbuild from command line to ask msbuild info about the project (not using msbuild as library)

How works:

  • override the CoreCompile target, to gather info about the project properties (OutputType, etc)
  • convert the msbuild properties to fsc args, using the Fsc task code

To override the CoreCompile target, the CustomAfterMicrosoftCommonTargets property is used as hook to import the generate .target file after F# targets are imported (msbuild override targets with same name, based on import sequence)

To convert msbuild properties to fsc compiler args, use the same Fsc msbuild task class code.

  • Fsc msbuild task from microsoft/visualfsharp repo
  • msbuild classes from mono/mono repo

The strategy for msbuild properties -> fsc args can be customized

Additional:

  • dotnet-proj-info support netcoreapp2.0 framework
  • Dotnet.ProjInfo support netstandard2.0 framework
  • the Fsc task is not bundled with Dotnet.ProjInfo, so clients can pin another version if needed