ionide / proj-info

Parse and evaluate MsBuild project files
MIT License
64 stars 37 forks source link

update to net6 #133

Closed dsyme closed 2 years ago

dsyme commented 2 years ago

@Krzysztof-Cieslak @baronfel What are your thoughts on continued use of FAKE for repos like this?

dsyme commented 2 years ago

@baronfel Should we be updating the whole FsAutoComplete/Ionide stack to net6?

Separately I noticed the solution for this project can't be opened in Visual Studio. This is because the build tasks in https://github.com/ionide/KeepAChangelog depend on FSharp.Core and that doesn't get found by .NET Framework MSBuild, e.g. error log below

It's probably better just not to write the build tasks in F# tbh - or at least I think they need to be bundled with the exact version of FSharp.Core that they need. Strangely the load below is trying to load version 4.4.3.0 while the build task is bundled with 6.0.0.0

> msbuild ionide-proj-info.sln

"C:\GitHub\dsyme\proj-info\ionide-proj-info.sln" (default target) (1) ->
"C:\GitHub\dsyme\proj-info\src\Ionide.ProjInfo.Tool\Ionide.ProjInfo.Tool.fsproj" (default target) (7) ->
"C:\GitHub\dsyme\proj-info\src\Ionide.ProjInfo.Tool\Ionide.ProjInfo.Tool.fsproj" (Build target) (7:2) ->
  C:\Users\donsy\.nuget\packages\ionide.keepachangelog.tasks\0.1.2\build\Ionide.KeepAChangelog.Tasks.targets(14,9): err
or MSB4018: The "Ionide.KeepAChangelog.Tasks.ParseChangeLogs" task failed unexpectedly. [C:\GitHub\dsyme\proj-info\src\
Ionide.ProjInfo.Tool\Ionide.ProjInfo.Tool.fsproj]
C:\Users\donsy\.nuget\packages\ionide.keepachangelog.tasks\0.1.2\build\Ionide.KeepAChangelog.Tasks.targets(14,9): error
 MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 'FSharp.Core, Version=4.4.3.0, Culture=neutr
al, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. [C:\GitHub\
dsyme\proj-info\src\Ionide.ProjInfo.Tool\Ionide.ProjInfo.Tool.fsproj]
C:\Users\donsy\.nuget\packages\ionide.keepachangelog.tasks\0.1.2\build\Ionide.KeepAChangelog.Tasks.targets(14,9): error
 MSB4018: File name: 'FSharp.Core, Version=4.4.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' [C:\GitHub\dsyme\
proj-info\src\Ionide.ProjInfo.Tool\Ionide.ProjInfo.Tool.fsproj]
C:\Users\donsy\.nuget\packages\ionide.keepachangelog.tasks\0.1.2\build\Ionide.KeepAChangelog.Tasks.targets(14,9): error
baronfel commented 2 years ago

The big thing we need FAKE for at this point is doing text-replacement on the FsLibLog dependency. There are two paths to removing this need:

In other repos we've moved to using the FAKE libraries in a build.fsproj, so we'd likely do that here for ease of use/consistency.

Other than that, we're good to go to net.60 - net5.0 is EOL in May so we're only slightly ahead of the curve here.