I would appreciate help, as I feel embarrassed.
If I believe this page, the best way to deploy the FSharp kernel with my application is to copy the FSharp.Core.dll file along with the application binaries ("xcopy deployment").
In compiled applications, you should never assume that FSharp.Core is in the GAC ("Global Assembly Cache"). Instead, you should deploy the corresponding FSharp.Core file as part of your application.
So far so good, I feel completely comfortable with this ... on Windows. However, regarding Mono, the same page reads:
The standard F # tool installations on Linux and Mac on Mono also install the latest version of FSharp.Core in the GAC. They also add redirects for the entire component for the entire component. This means that for these machines the last installed FSharp.Core will be used by applications
what are the hints that you donβt have to deploy a copy of the FSharp kernel with the application, and the correct version of the FSharp kernel will be taken from the Mono GAC. I take two questions:
- This leads to two deployment scenarios for Windows and Linux;
- In Mono, this could potentially lead to the use of older FSharp code than the one available in the latest version of Visual Studio.
Perhaps all the problems could be solved by always creating the FSharp kernel from GitHub sources with the application, but this does not seem like an elegant solution. So I'm wondering what is the right way to always use the latest FSharp kernel regardless of platform (if at all possible)?
source share