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

Compiling a F# class library fails when using Visual Studio 16.8 #10447

Closed
jcdekoning opened this issue Nov 12, 2020 · 10 comments
Closed

Compiling a F# class library fails when using Visual Studio 16.8 #10447

jcdekoning opened this issue Nov 12, 2020 · 10 comments

Comments

@jcdekoning
Copy link

jcdekoning commented Nov 12, 2020

I updated Visual Studio to version 16.8, which comes with .Net 5, and now a F# class library fails to compile. This also seems to be the case when I create a new solution with a new F# class library.

Repro steps

  1. File -> New project.
  2. Choose Class Library (.Net standard) F# as template
  3. Keep all other things default and choose create
  4. Build the solution.

Expected behavior

A successful build

Actual behavior

The build fails. The complete build log can be found here https://gist.github.com/jcdekoning/0789f4968f72b1a41a890819f05075e0

A snippet which shows the error

>Target CoreCompile:
1>  Building target "CoreCompile" completely.
1>  Output file "obj\Debug\netstandard2.0\ClassLibrary2.dll" does not exist.
1>  Task "Error" skipped, due to false condition; ('$(SilverlightVersion)' != '' and '$(SilverlightVersion)' != 'v5.0') was evaluated as ('' != '' and '' != 'v5.0').
1>  Task "Warning" skipped, due to false condition; ('$(Win32ResourceFile)' != '' ) was evaluated as ('' != '' ).
1>  Using "Fsc" task from assembly "c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\FSharp.Build.dll".
1>  Task "Fsc"
1>    C:\Program Files\dotnet\dotnet.exe "c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\fsc.exe" -o:obj\Debug\netstandard2.0\ClassLibrary2.dll
1>    -g
1>    --debug:portable
1>    --noframework
1>    --define:TRACE
1>    --define:DEBUG
1>    --define:NETSTANDARD
1>    --define:NETSTANDARD2_0
1>    --optimize-
1>    --tailcalls-
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\fsharp.core\5.0.0\lib\netstandard2.0\FSharp.Core.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\Microsoft.Win32.Primitives.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\mscorlib.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\netstandard.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.AppContext.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Concurrent.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.NonGeneric.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Specialized.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Composition.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.EventBasedAsync.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Primitives.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.TypeConverter.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Console.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Core.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.Common.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Contracts.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Debug.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.FileVersionInfo.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Process.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.StackTrace.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TextWriterTraceListener.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tools.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TraceSource.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tracing.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.Primitives.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Dynamic.Runtime.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Calendars.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Extensions.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.FileSystem.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.ZipFile.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.DriveInfo.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Primitives.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Watcher.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.IsolatedStorage.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.MemoryMappedFiles.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Pipes.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.UnmanagedMemoryStream.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Expressions.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Parallel.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Queryable.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Http.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NameResolution.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NetworkInformation.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Ping.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Primitives.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Requests.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Security.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Sockets.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebHeaderCollection.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.Client.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Numerics.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ObjectModel.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Extensions.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Primitives.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Reader.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.ResourceManager.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Writer.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.CompilerServices.VisualC.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Extensions.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Handles.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.RuntimeInformation.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Numerics.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Formatters.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Json.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Primitives.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Xml.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Claims.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Algorithms.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Csp.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Encoding.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Primitives.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.X509Certificates.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Principal.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.SecureString.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ServiceModel.Web.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.Extensions.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.RegularExpressions.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Overlapped.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.Parallel.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Thread.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.ThreadPool.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Timer.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Transactions.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ValueTuple.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Web.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Windows.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Linq.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.ReaderWriter.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Serialization.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XDocument.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlDocument.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlSerializer.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.dll
1>    -r:C:\Users\JDK.LAP1990\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.XDocument.dll
1>    --target:library
1>    --warn:3
1>    --warnaserror:3239,76
1>    --fullpaths
1>    --flaterrors
1>    --highentropyva+
1>    --targetprofile:netstandard
1>    --nocopyfsharpcore
1>    --deterministic+
1>    --simpleresolution
1>    obj\Debug\netstandard2.0\.NETStandard,Version=v2.0.AssemblyAttributes.fs
1>    obj\Debug\netstandard2.0\ClassLibrary2.AssemblyInfo.fs
1>    Library.fs
1>    Cannot use file stream for [c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\fsc.deps.json]: No such file or directory
1>    A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\'.
1>    Failed to run as a self-contained app.
1>      - The application was run as a self-contained app because 'c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\fsc.runtimeconfig.json' was not found.
1>      - If this should be a framework-dependent app, add the 'c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\fsc.runtimeconfig.json' file and specify the appropriate framework.
1>    c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\Microsoft.FSharp.Targets(281,9): error MSB6006: "dotnet.exe" exited with code -2147450749.
1>  Done executing task "Fsc" -- FAILED.
1>Done building target "CoreCompile" in project "ClassLibrary2.fsproj" -- FAILED.

Known workarounds

None

Related information

  • Operating system and .NET Core Runtime and SDK
.NET SDK (reflecting any global.json):
 Version:   5.0.100
 Commit:    5044b93829

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.19041
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\5.0.100\

Host (useful for support):
  Version: 5.0.0
  Commit:  cf258a14b7

.NET SDKs installed:
  2.1.511 [C:\Program Files\dotnet\sdk]
  3.1.404 [C:\Program Files\dotnet\sdk]
  5.0.100 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.All 2.1.15 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.23 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.15 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.23 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.10 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.15 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.23 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.10 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.9 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 3.1.10 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 5.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  • Visual Studio 16.8.0 Professional
@TIHan
Copy link
Contributor

TIHan commented Nov 12, 2020

Based on the error:

Cannot use file stream for [c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\fsc.deps.json]: No such file or directory
1>    A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\'.
1>    Failed to run as a self-contained app.
1>      - The application was run as a self-contained app because 'c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\fsc.runtimeconfig.json' was not found.
1>      - If this should be a framework-dependent app, add the 'c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\fsc.runtimeconfig.json' file and specify the appropriate framework.
1>    c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\Microsoft.FSharp.Targets(281,9): error MSB6006: "dotnet.exe" exited with code -2147450749.

It looks like it was trying to run fsc.exe through dotnet which won't work because fsc.exe in VS is .NET Framework. I'm wondering why would it be executing it that way?
// cc @KevinRansom @brettfo

@brettfo
Copy link
Member

brettfo commented Nov 12, 2020

@TIHan is correct, the build is invoking C:\Program Files\dotnet\dotnet.exe "c:\program files (x86)\microsoft visual studio\2019\professional\common7\ide\commonextensions\microsoft\fsharp\fsc.exe" but the question is why? Doing the same steps you report locally doesn't repro the issue because it's directly invoking fsc.exe and not trying to go through dotnet.

Is there a Directory.Build.props or Directory.Build.targets file in that directory or in any directory all the way up to the root? If so, can you post the contents?

Otherwise I'm also going to yield to @KevinRansom to answer the question of why we're trying to build through dotnet from within VS.

@KevinRansom
Copy link
Member

I will look at this in a little bit, I just need to finish off a merge. But it looks like something unusual is happening.

@jcdekoning
Copy link
Author

jcdekoning commented Nov 12, 2020

I believe I found the problem. I was getting an error earlier on a different project (also after updating VS to 16.8) that the DOTNET_HOST_PATH was not set. I solved that by setting this env variable to %ProgramFiles%\dotnet\dotnet.exe as mentioned as workaround in this post https://github.com/dotnet/sdk/issues/14497. Probably that was interfering with the fsc build.

Removing this ENV variable solves the problem indeed.

@KevinRansom
Copy link
Member

Thats funny I was just typing this:
@jcdekoning Is it possible that you have the environment variable DOTNET_HOSTPATH set?

If so you fall into this:

<PropertyGroup Condition="'$(DisableAutoSetFscCompilerPath)' != 'true' and '$(DOTNET_HOST_PATH)' != ''">

DOTNET_HOST_PATH is normally set by dotnet.sdk when it runs msbuild.

It is our understanding that

Kevin

@KevinRansom
Copy link
Member

@jcdekoning . Given that the bloody variable is becoming quite famous. I think we may need to reconsider it's use at all. My advice is that it is never the solution to an end user issue.

@KevinRansom
Copy link
Member

@jcdekoning What was the issue that needed to be fixed by setting: DOTNET_HOST_PATH ?

@KevinRansom
Copy link
Member

Oh an asp.net thingy ... I wonder if that is really the correct solution.

@KevinRansom
Copy link
Member

Oh bugger it looks like we can expect asp.net developers to be setting DOTNET_HOST_PATH which eliminates it's usefulness almost completely. Sigh!!!!!

@KevinRansom
Copy link
Member

I will close this, since removing the environment variable DOTNET_HOST_PATH fixed it.

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

No branches or pull requests

4 participants