Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FSharp.Compiler.Service nupkg without FSharp.Compiler.Service.MSBuild.v12.dll #675

Closed
cloudRoutine opened this issue Dec 1, 2016 · 5 comments

Comments

@cloudRoutine
Copy link
Contributor

I know we can manually remove it from a project, but it's just going to keep getting installed repeatedly.
Either having FSharp.Compiler.Service keep the msbuild dll and adding a new package like FSharp.Compiler.Service.Core or removing the msbuild dll and adding a new package like FSharp.Compiler.Service.MSBuild would be good.

@cgravill
Copy link
Contributor

This would be really useful.

On the F# Notebook tool (https://github.com/fsprojects/IfSharp) we use the F# Compiler Service to process F#. By using the NuGet we the FSharp.Compiler.Service.MSBuild.v12.dll reference which I guess we don't need, but have been just ignoring.

We recently had a confusing crash. On machine-A with only Visual Studio 2017, someone was able to build the tool from source and run successfully. However, a build from machine-B with Visual Studio 2017 (AND other earlier versions) was failing on Machine-A, I located the issue as having these files:

Microsoft.Build.Framework.dll
Microsoft.Build.Tasks.v12.0.dll
Microsoft.Build.Utilities.v12.0.dll

(with timestamps with the year as 2015)

Neither build shows errors or warnings.

When I deleted the files, which took a while to figure out, it seems to work properly.

I've worked around this by manually removing the reference FSharp.Compiler.Service.MSBuild.v12.dll from the project and it now consistently builds between machines.

Unfortunately any time someone runs paket install it's going to reintroduce a hard to diagnose fault:

Microsoft.FSharp.Compiler.Interactive.Shell.FsiEvaluationSession..ctor(FsiEvaluationSessionHostConfig fsi, String[] argv, TextReader inReader, TextWriter outWriter, TextWriter errorWriter, Boolean fsiCollectible, Boolean msbuildEnabled) in C:\projects\fsharp-compiler-service\src\fsharp\fsi\fsi.fs:line 2576
   at Microsoft.FSharp.Compiler.Interactive.Shell.FsiEvaluationSession.Create(FsiEvaluationSessionHostConfig fsiConfig, String[] argv, TextReader inReader, TextWriter outWriter, TextWriter errorWriter, FSharpOption`1 collectible, FSharpOption`1 msbuildEnabled) in C:\projects\fsharp-compiler-service\src\fsharp\fsi\fsi.fs:line 2877
   at IfSharp.Kernel.Evaluation.startSession() in E:\dev\IfSharp\src\IfSharp.Kernel\Evaluation.fs:line 45
   at <StartupCode$IfSharp-Kernel>.$Evaluation..cctor() in E:\dev\IfSharp\src\IfSharp.Kernel\Evaluation.fs:line 65
   --- End of inner exception stack trace ---
   at IfSharp.Kernel.IfSharpKernel.doShell() in E:\dev\IfSharp\src\IfSharp.Kernel\Kernel.fs:line 481
   at <StartupCode$IfSharp-Kernel>.$Kernel.StartAsync@543.Invoke(Unit unitVar) in E:\dev\IfSharp\src\IfSharp.Kernel\Kernel.fs:line 543
   at Microsoft.FSharp.Control.AsyncBuilderImpl.callA@839.Invoke(AsyncParams`1 args)
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.FSharp.Control.CancellationTokenOps.Start@1292-1.Invoke(ExceptionDispatchInfo edi)
   at <StartupCode$FSharp-Core>.$Control.loop@425-51(Trampoline this, FSharpFunc`2 action)
   at Microsoft.FSharp.Control.Trampoline.ExecuteAction(FSharpFunc`2 firstAction)
   at <StartupCode$FSharp-Core>.$Control.-ctor@509-1.Invoke(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
[I 15:45:42.770 NotebookApp] KernelRestarter: restarting kernel (1/5)
[W 15:45:43.832 NotebookApp] Timeout waiting for kernel_info reply from f71c1225-1a01-4ef0-919b-257f3a6184aa

@dsyme
Copy link
Contributor

dsyme commented Jun 16, 2017

@cgravill Based on that we should certainly separate the packages

@dsyme
Copy link
Contributor

dsyme commented Jun 16, 2017

@cgravill If you or anyone gets a chance to submit the PR for the package building then I can publish (not sure when we'd get to it otherwise)

@cgravill
Copy link
Contributor

@dsyme understood, I'll add it to my list though I'm not sure when I'll get to it either so anyone else is extremely welcome to go ahead and make us happy!

@enricosada
Copy link
Contributor

Closing, done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants