-
Notifications
You must be signed in to change notification settings - Fork 830
Description
Originally opened by @ctaggart on Codeplex. Seems like a weird/severe enough problem that we should get eyes on it asap.
I've been troubleshooting this issue with Visual Studio 2015 Preview the last couple of nights and created a very simple FSharp.Data.SqlClient project to reproduce the issue. The project that uses the type provider ends up referencing both 4.4.0.0 and 4.3.1.0 of FSharp.Core. I was expecting it to only reference 4.3.1.0 that the project is set to. We figured out that we can still get it to run on 4.3.1.0 by doing a binding redirect down.
Please have a look at this issue:
fsprojects/FSharp.Data.SqlClient#79
It is super easy to reproduce:
PS> git clone https://github.com/ctaggart/Paket09x.git -b PeopleSql
PS> .\Paket09x\PeopleSql.sln
cheers,
Cameron
KevinRansom wrote Nov 19, 2014 at 9:16 AM [x]
Thanks for this report we will take a look to try to figure out what makes sense to do here.
Kevin
latkin wrote Nov 26, 2014 at 4:58 PM [x]
At the project level, everything is working as expected, and 4.3.1.0 is the only FSharp.Core referenced in the compiler command line.
At some point when the provided types are generated during compilation, various F#-specific types are required (unit, async...) and the compiler assumes those come from the same FSharp.Core version that it is using (4.4.0.0 in this case). A reference is somehow injected to 4.4.0.0 due to this, as best as I can tell. Reproing with the OSS compiler results in unintentional reference to 4.4.0.9055, which follows the same pattern.