Created
March 9, 2013 22:08
-
-
Save haf/5125959 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| There are three versions of F#. | |
| 2.0. 3.0, the open source version. 3.0, the Visual Studio version. Wtf? | |
| During compile time, there is F# assembly version 2.0. There is F# assembly | |
| version 4.0 and F# assembly version 4.3. The assembly version 4.0 runs on | |
| WinRT/.Net 4.5 and is F# 2.0. The assembly version 4.3 runs on WinRT/.Net 4.5 | |
| and is F# 3.0. Wtf? | |
| Then there's GAC 2.0 that can contain the above F# 2.0. This GAC doesn't know | |
| about GAC 4.0: | |
| And GAC 4.0 that knows about GAC 2.0 and loads from there. F# assembly version | |
| 4.0 is incompatible with F# assembly version 2.0, except that all public APIs | |
| are identical, so it is possible to rebind. Which GAC 4.0 does: when e.g. F# | |
| PowerPack wants F# version 2.0, assembly version 2.0, GAC 4.0 rebinds F# 2.0 | |
| asmver 2.0 to asmver 4.0 and reports OK; except now, there's no way to properly | |
| redistribute your program anymore. | |
| Oh, and there's an exe called 'Microsoft Visual Studio 2010 F# Runtime 2.0' | |
| (WTF??!) which is F# 2.0 asmver 4.0 for .Net 4.0 which isn't .Net 4.0 but | |
| actually .Net 4.5/WinRT in compatibility mode with bugfixes over .Net 4.0. Worth | |
| mentioning is that the 'Microsoft Visual Studio 2010 F# Runtime 2.0' also | |
| installs F# 2.0 asmver 4.0 for Visual Studio 2012, aka VS11. | |
| Mushrooms are served on 1 Microsoft Way tomorrow. | |
| [1]: www.microsoft.com/downloads/details.aspx?FamilyID=5f0a79f8-925f-4297-9ae2-86e2fdcff33c&displaylang=en |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment